通信建模程序_第1页
通信建模程序_第2页
通信建模程序_第3页
通信建模程序_第4页
通信建模程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验六高斯随机变量直方图程序:subplot(2,2,1) %图形标号为2行2列中的第1个x = randn(1,100); %产生一个长度为100的白噪声序列 hist(x,20) %画出序列x的20个直方图ylabel('Ni'); xlabel('(a)') %横纵坐标名称subplot(2,2,2) %图形标号为2行2列中的第一个x = randn(1,100); %产生一个长度为100的白噪声序列 hist(x,5) %画出序列x的5个直方图ylabel('Ni'); xlabel('(b)') %横纵坐标名称subpl

2、ot(2,2,3) %图形标号为2行2列中的第2个x = randn(1,1000); %产生一个长度为1000的白噪声序列 hist(x,50) %画出序列x的50个直方图ylabel('Ni'); xlabel('(c)') %横纵坐标名称subplot(2,2,4) %图形标号为2行2列中的第3个x = randn(1,100000); %产生一个长度为100000的白噪声序列 hist(x,50) %画出序列x的50个直方图ylabel('Ni'); xlabel('(d)') %横纵坐标名称实验图形:白噪声通过切比雪夫滤

3、波器:settle = 100; % 定义变量并初始化fs = 1000; % 抽样频率N = 50000; % 定义数据长度f = (0:(N-1)*fs/N; % 频率范围b,a = cheby1(5,5,0.1); % 通过切比雪夫滤波器NN = N+settle; % 变化范围in = randn(1,NN); % 产生白噪声out = filter(b,a,in); % 滤波器输出out = out(settle+1):NN); % 截取初始采样值window = hanning(N)' % 加汉宁窗 winout = out.*window; % 窗滤波器输出fout =

4、abs(fft(winout,N).2; % 功率谱U = sum(window.*window); % 窗能量f1out = fout/U; % 功率谱密度psd1 = 10*log10(abs(f1out); % 功率谱密度的log值subplot(2,1,1) %图形标号为2行1列中的第1个plot(f(1:5000),psd1(1:5000) %画图grid; axis(0 100 -70 10); %加网格及图形范围xlabel('Frequency, Hz') ylabel('PSD') %坐标名称K = 25; % 分段数 M = N/K; % 分

5、段长度fK = (0:(M-1)*fs/M; % 频率范围d = zeros(1,M); % 初始化向量psdk = zeros(1,M); %初始化向量window = hanning(M)' % 加汉宁窗U = sum(window.*window); % 窗能量for k=1:K for j=1:M index = (k-1)*M+j; d(j) = out(index); end dwin = d.*window; psdk = (abs(fft(dwin,M).2)/U + psdk;endpsd2 = 10*log10(psdk/K); %功率谱密度subplot(2,1,

6、2) %图形标号为2行1列中的第2个plot(fK(1:250),psd2(1:250) %画图grid; axis(0 100 -70 10); %加网格及图形范围xlabel('Frequency, Hz')ylabel('PSD') %坐标名称实验图形:QPSK信号的PSD程序:fs = 16; %定义并初始化变量x=random_binary(1024,fs)+i*random_binary(1024,fs);%调用random_binary函数产生x序列 for nwin=1:4 nwindow = nwin*1024; pxx,f = pwelch(

7、x,nwindow,fs); %计算功率谱密度 pxx = pxx/sum(sum(pxx); %当前功率谱密度与总功率谱密度的比值 n2 = length(f)/2; %长度 pxxdB = 10*log10(pxx/pxx(1); %功率谱密度 ptheory = sin(pi*f+eps)./(pi*f+eps);%余弦信号 ptheory = ptheory.*ptheory; %功率谱 ptheorydB = 10*log10(ptheory/ptheory(1); %功率谱密度 subplot(2,2,nwin) plot(f(1:n2),pxxdB(1:n2),f(1:n2),p

8、theorydB(1:n2) %画图 ylabel('PSD in dB') xx = 'window length = ',num2str(nwindow); %坐标名称 xlabel(xx) axis(0 8 -50, 10); grid; %图形范围及加网格end 实验图形:random_binary函数程序:function x, bits = random_binary(nbits,nsamples) %定义函数x = zeros(1,nbits*nsamples); %产生x序列bits = (rand(1,nbits); %随机序列取整for m=

9、1:nbits for n=1:nsamples index = (m-1)*nsamples + n; x(1,index) = (-1)bits(m); endend %函数算法实验七BPSK误比特率性能仿真:snrdB_min = -3; snrdB_max = 8; % 定义snrdB最大最小值 snrdB = snrdB_min:1:snrdB_max; %范围Nsymbols = input('Enter number of symbols > '); %显示提示输入snr = 10.(snrdB/10); % 从dB转化h = waitbar(0,'

10、SNR Iteration');len_snr = length(snrdB); for j=1:len_snr % 循环次数 waitbar(j/len_snr) sigma = sqrt(1/(2*snr(j); % 偏离噪声程度 error_count = 0; for k=1:Nsymbols % 仿真循环开始 d = round(rand(1); %产生随机数值并取整 x_d = 2*d - 1; % 变换 n_d = sigma*randn(1); % 定义噪声 y_d = x_d + n_d; % 接收输入 if y_d > 0 % 判断条件 d_est = 1;

11、% 条件数值判断 else d_est = 0; %条件数值判断 end if (d_est = d) error_count = error_count + 1; % 错误计数 end end % 仿真循环结束 errors(j) = error_count; % 保存错误数用于画图endclose(h)ber_sim = errors/Nsymbols; % BER 估计ber_theor = q(sqrt(2*snr); % 理论 BERsemilogy(snrdB,ber_theor,snrdB,ber_sim,'o') %画图axis(snrdB_min snrdB_

12、max 0.0001 1)xlabel('SNR in dB')ylabel('BER')legend('Theoretical','Simulation')实验图形:Enter number of symbols >为 256BFSK误比特率性能仿真:clear allsnrdB_min = 0; snrdB_max = 10; %定义snrdB最大最小值snrdB = snrdB_min:1:snrdB_max; %范围Nsymbols = input('Enter number of symbols >

13、'); %显示提示输入snr = 10.(snrdB/10); %从dB转化h = waitbar(0,'SNR Iteration');len_snr = length(snrdB);for j=1:len_snr %循环次数 waitbar(j/len_snr) sigma = sqrt(1/(2*snr(j); %偏离噪声程度 error_count = 0; for k=1:Nsymbols %仿真循环开始 d = round(rand(1); %产生随机数值并取整 if d =0 x_d = 1; % 直接变换输出 x_q = 0; % 积分变换输出 else

14、 x_d = 0; %直接变换输出 x_q = 1; %积分变换输出 end n_d = sigma*randn(1); % 直接噪声部分 n_q = sigma*randn(1); % 变换噪声部分 y_d = x_d + n_d; % 直接接收输入 y_q = x_q + n_q; % 积分接收输入 if y_d > y_q % 判断条件 d_est = 0; % 条件数值估计 else d_est = 1; % 条件数值估计 end if (d_est = d) error_count = error_count + 1; % 错误计数 end end % 仿真循环结束 errors(j) = error_count; % 保存错误数用于画图endclose(h)ber_sim = errors/Nsymbols; % BER 估计ber_theor = q(sqrt(snr); % 理论 BERsemilogy(snrdB,ber_theor,snrdB,ber_sim,&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论