补充内容:模拟调制系统的MATLAB仿真1.抽样定理 为了用实验的手段对连续信号分析,需要先对信号进行抽样(时间上的离散化),把连续数据转变为离散数据分析。抽样(时间离散化)是模拟信号数字化的第一步。 Nyquist抽样定律:要无失真地恢复出抽样前的信号,要求抽样频率要大于等于两倍基带信号带宽。 抽样定理建立了模拟信号和离散信号之间的关系,在Matlab中对模拟信号的实验仿真都是通过先抽样,转变成离散信号,然后用该离散信号近似替代原来的模拟信号进行分析的。 【例1】用图形表示DSB调制波形 及其包络线。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=100*fh;%%一般选取的抽样频率要远大于基带信号频率,即抽样时间间隔要尽可能短。 ts=1/fs; %%根据抽样时间间隔进行抽样,并计算出信号和包络 t=(0:ts:pi/2)';%抽样时间间隔要足够小,要满足抽样定理。 envelop=cos(2*pi*t);%%DSB信号包络 y=cos(2*pi*t).*cos(4*pi*t);%已调信号 %画出已调信号包络线 plot(t,envelop,'r:','LineWidth',3); hold on plot(t,-envelop,'r:','LineWidth',3); %画出已调信号波形 plot(t,y,'b','LineWidth',3); axis([0,pi/2,-1,1])% hold off% xlabel('t'); %写出图例 legend('包络','双边带已调信号') 【例2】用图形表示DSB调制波形 及其包络线。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=100*fh;%抽样时间间隔要足够小,要满足抽样定理。 ts=1/fs; %%根据抽样时间间隔进行抽样 t=(0:ts:pi/2); envelop=cos(2*pi*t);%%DSB信号包络 y=cos(2*pi*t).*cos(6*pi*t);%已调信号 %画出已调信号包络线 plot(t,envelop,'r:','LineWidth',3);hold on plot(t,-envelop,'r:','LineWidth',3); %画出已调信号波形 plot(t,y,'b','LineWidth',3); axis([0,pi/2,-1,1]); hold off%% 注意观察:过零点“反相”现象。 2.信号的频谱和功率【例3】画出DSB信号的频谱并计算已调信号的功率。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=20*fh; ts=1/fs; %%根据抽样时间间隔进行抽样 t=(0:ts:2*pi);%抽样时间间隔要足够小,要满足抽样定理。 y=cos(2*pi*t).*cos(10*pi*t);%已调信号 %计算已调信号的傅立叶变化 n=2^nextpow2(length(t));%傅立叶变换的序列长度 spectrum=fft(y,n); df=fs/n;%频率分辨率 f=[0:df:df*(length(spectrum)-1)]-fs/2;%FFT频率向量 %计算信号功率 p=(norm(y)^2)/length(y) %画出已调信号频谱 plot(f,fftshift(abs(spectrum)),'b','LineWidth',3); xlabel('frequency/Hz');title('Magnitude-spectrum of y'); p = 0.2520 3.AWGN的产生及功率谱密度已知AWGN信道中噪声的比特信噪比为10dB,信号功率0.25W,求噪声功率并画出噪声的时域波形。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=40*fh; ts=1/fs; t=(0:ts:2*pi);%根据抽样间隔生成抽样时间 %生成AWGN噪声序列 snr=10;%信噪比10dB snr_lin=10^(snr/10);%分贝信噪比转换为线性信噪比 noise_power=p_DSB/snr_lin noise_std=sqrt(noise_power); noise=randn(1,length(y))*noise_std; plot(t,noise,'LineWidth',2) noise_power = 0.0250 4.DSB调制解调【例4】画出基带信号和DSB信号的频谱并计算基带信号和已调信号的功功率。 clf %%计算抽样时间间隔 fh=1;%%调制信号带宽(Hz) fs=40*fh; ts=1/fs; %%根据抽样时间间隔进行抽样 t=(0:ts:pi);%抽样时间间隔要足够小,要满足抽样定理。 m=cos(2*pi*t);%基带信号 y=m.*cos(10*pi*t);%已调信号 %计算基带信号的傅立叶变换 n=2^nextpow2(length(t));%傅立叶变换的序列长度 spectrum_baseband=fft(m,n); df=fs/n;%频率分辨率 f=[0:df:df*(length(spectrum_baseband)-1)]-fs/2;%FFT频率向量 %计算已调信号的频谱 n=2^nextpow2(length(t));%傅立叶变换的序列长度 spectrum_DSB=fft(y,n); df=fs/n;%频率分辨率 f=[0:df:df*(length(spectrum_DSB)-1)]-fs/2;%FFT频率向量 %计算信号功率 p_baseband=(norm(m)^2)/length(m) p_DSB=(norm(y)^2)/length(y) %画出已调信号频谱 subplot(2,1,1); plot(f,fftshift(abs(spectrum_baseband)),'b','LineWidth',3); xlabel('frequency/Hz');title('Magnitude-spectrum of baseband'); subplot(2,1,2); plot(f,fftshift(abs(spectrum_DSB)),'b','LineWidth',3); xlabel('frequency/Hz');title('Magnitude-spectrum of DSB'); p_baseband = 0.5145 p_DSB = 0.2602 已知AWGN信道中噪声的比特信噪比为10dB,求噪声功率并绘出信道中传输的信号。 clf snr=10;%信噪比10dB snr_lin=10^(snr/10);%分贝信噪比转换为线性信噪比 noise_power=p_DSB/snr_lin; noise_std=sqrt(noise_power); noise=randn(1,length(y))*noise_std; signal_in_channel=y+noise; subplot(2,1,1); plot(t,signal_in_channel,'b') xlabel('t');ylabel('DSB signal plus noise');axis([0,pi,-1,1]); subplot(2,1,2); plot(t,y,'r'); xlabel('t');ylabel('DSB signal');
|