d**的调制与解调
ZHAOKUNYI
2024-05-25 20:41:23
最佳回答
1) 主程序dt=0.001; %时间采样fm=1; %信源最高频率fc=10; %载波中率t=5; %信号时长t=0:dt:t; mt=sqrt(2)*cos(2*pi*fm*t); %信源% n0=0.01; %白噪声单率谱密度%d**调制s_d**=mt.*cos(2*pi*fc*t);b=2*fm;% no**e=no**e_nb(fc,b,n0,t);% s_d**=s_d**+no**e;figure(1)subplot(3,1,1)plot(t,s_d**); %画d**信号波形hold onplot (t,mt,'r--'); %标出m(t)波形title('d**调制信号');xlabel('t');%d**解调rt=s_d**.*cos(2*pi*fc*t);[f,rf]=t2f(t,rt);[t,rt]=lpf(f,rf,fm);subplot(3,1,2)plot(t,rt); title('相干解调后的信号波形');xlabel('t');rt=rt-mean(rt);subplot(3,1,3)[f,sf]=t2f(t,s_d**);psf=(abs(sf).^2)/t;plot(f,psf); ax**([-2*fc 2*fc 0 max(psf)]);title('d**信号功率谱');xlabel('f');2) 信号的傅里叶变换函数function [ f,sf] = t2f(t,st)dt=t(2)-t(1);t=t(end);df=1/t;n=length(st);f=-n/2*df:df:n/2*df-df;sf=fft(st);sf=t/n*fftshift(sf);end3) 低通滤波函数function [ t,st] = lpf( f,sf,b)df=f(2)-f(1);t=1/df;hf=zeros(1,length(f));bf=[-floor(b/df):floor(b/df)]+floor(length(f)/2);hf(bf)=1;yf=hf.*sf;[t,st]=f2t(f,yf);st=real(st);end4) 高斯白噪声函数function [ out ] = no**e_nb( fc,b,n0,t )dt=t(2)-t(1);fmx=1/dt;n_len=length(t);p=n0*fmx;rn=sqrt(p)*randn(1:n_len);[f,rf]=t2f(t,rn);[t,out]=bpf(f,rf,fc-b/2,fc+b/2);end5) 信号的反傅里叶变换函数function [t,st] =f2t(f,sf )df=f(2)-f(1);fmx=(f(end)-f(1)+df);dt=1/fmx;n=length(sf);t=dt*n;t=0:dt:t-dt;sff=fftshift(sf);st=fmx*ifft(sff);end数据自己改动 20210311