logo资料库

Matlab实验报告(2019).doc

第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
资料共31页,剩余部分请下载后查看
《基于MATLAB的数字信号处理》实验报告
西北工业大学 《基于 MATLAB 的数字信号处理》实验报告 学 学 姓 专 院: 号: 名: 业: 西北工业大学 2019 年 04 月 1
实验一 MATLAB 基本编程实验 一、实验目的及要求 1.熟悉 MATLAB 运行环境; 2. 掌握 MATLAB 的基本语法和函数; 3. 掌握 MATLAB 的基本绘图功能 二、实验设备(环境)及要求 1. 计算机 2. Matlab 软件编程实验平台 三、实验内容与步骤 1.求下列线性方程组的解 6 x  1 2 x  1 8 x  1 3  4 x  2 5 x 2 x  2 4  3 3 x  3 7 x   3 7 x   3 4 2. 分别用 for 或 while 循环结构编写程序,求出 K 避免循环语句的程序设计算法实现同样的运算。 106   。并考虑一种 3 2i i 1  3. 在同一坐标系下绘制以下 3 条曲线,并作标记。 y 1  sin , x y 2  sin sin(10 ), x y 3 x   cos , x x  (0, )  四、设计思路 设计思路 1.1 对于 AX=B 类型的方程组求解,需要先对非奇异矩阵 A 求逆,若存在 A 的逆矩阵, 然后用 A 的逆矩阵与 B 相乘即为所求。 设计思路 1.2 分别使用 for 循环和 while 循环求解问题,采用等比数列求和公式实现同样的运 算。 2
设计思路 1.3 确定曲线范围,在一张图上绘出三条曲线并进行标记。 五、程序代码及注释 程序代码 1.1 %求下列线性方程组的解 clear A= [ 6 3 4 -2 5 7 8 -4 -3];%输入矩阵 A b=[ 3 -4 -7]; x=inv(A)*b ; %x=A\b ; x=linsolve(A,b); disp('x=')%显示解等于 disp(x); 程序代码 1.2 %for clear k_1=0;sum=0; for i=1:106 k_1=sqrt(3)/(2^i); sum=sum+k_1; end disp('k_1='); disp(sum) %while clear k_2=0;sum=0;i=1; while i<=106 k_2=sqrt(3)/(2^i); sum=sum+k_2; i=i+1; end disp('k_2=') disp(sum) %等比数列避免循环 k=sqrt(3)/2;%等比数列首项 3
k_3=k*(1-0.5^106)/(1-0.5); disp('k_3=') disp(k_3) 程序代码 1.3 %在同一坐标系下绘制以下 3 条曲线,并作标记。 clear x=0:0.01:pi;%x 的取值为 0 到π y_1=sin(x); y_2=sin(x).*sin(10*x); y_3=-cos(x); plot(x,y_1,'B',x,y_2,'G',x,y_3,'r'); text(0.5,-0.8,'y3');%在指定坐标位置处标注说明文字 text(1,0.9,'y1'); text(1.6,-0.9,'y2'); 六、实验结果 1.1 结果为: x= 即 x=[0.6000, 7.0000,-5.4000]’ 0.6000 7.0000 -5.4000 1.2 结果为: k_1=1.7321 k_2=1.7321 k_3=1.7321 1.3 结果为: 图 1-1:三条曲线的绘制 4
实验二 基于 MATLAB 的数字信号处理实验 一、实验目的及要求 1. 回顾数字信号处理的主要内容; 2. 掌握利用 MATLAB 进行信号处理的方法; 3. 了解信号处理工具箱中一些函数的功能; 二、实验设备(环境)及要求 1. 计算机 2. Matlab 软件编程实验平台 三、实验内容 1. 设序列 ( ) x n ( ) y n 其中, ( )   [3,1,7,0, 1,4,2], 3 ( x n       n 3; 2) 0 ( ), w n 1 w n 是均值为 ,方差为 的高斯随机序列. 利用 2 种方法计算 x(n)和 y(n)之间的互相关,并画出互相关序列图. 2 . 一数字滤波器由 ( H e ) j   1)写出其差分方程表示;  e  1 4 j  1 0.8145 e   频率响应函数描述 j 4  2)画出上面滤波器的幅频和相频图; / 2) 5cos( 3)产生信号 sin( n    n  ) ( ) x n 的 200 个样本,通过该滤波 器得到输出 y(n), 试将输出 y(n)的稳态部分与 x(n)作比较,说明这两 个正弦信号的幅度和相位是如何受该滤波器影响的。 3. 用 3 种方法设计带通滤波器(Butterworth、椭圆和窗函数),采样频率 fs =2000Hz, 通带频率 300Hz—600Hz,阶数自选,画出滤波器的频率响 应,并对三种方法设计的滤波器性能进行分析比较。 四、设计思路 设计思路 2.1 将求互相关问题转化为求卷积的问题,互相关的区间大小为两信号的去见端点分 5
别相加,区间长度为两信号区间长度之和。 设计思路 2.2 由系统的差分方程 .0)( ny  8145 ( ny  )4  )( nx  ( nx  )4 ,得到方程的各个项的系 数,进而求出系统的幅频和相频响应。 设计思路 2.3 首先选定带通滤波器的阶数,根据采样频率、上下限截止频率求得滤波器的各个 参数,然后进行性能分析比较。 五、程序代码及注释 程序代码 2.1 %方法一 clear x=[3,1,7,0,-1,4,2];%冲击信号的强度 nx=(-3:3);%x 的取值范围 ny=nx+2;%x(n-2) y=x; w=normrnd(0,1,1,7);%w 为均值为 0,方差为 1 的高斯随机序列 nw=ny; %得到 y(n)=x(n-2)+w(n) x=fliplr(x); nx=-fliplr(nx);%对 x 进行翻折 nyb=ny(1)+nx(1); nye=ny(length(y))+ nx(length(x)); nrxy=[nyb:nye]; rxy=conv(y,x); subplot(1,1,1); stem(nrxy,rxy); axis([-5,9,0,90]) xlabel('x'); title('x(n)与 y(n)的互相关') %方法二 clear x=[3,1,7,0,-1,4,2];%冲击信号的强度 nx=(-3:3);%x 的取值范围 ny=nx+2;%x(n-2) y=x; w=normrnd(0,1,1,7);%w 为均值为 0,方差为 1 的高斯随机序列 6
nw=ny; %得到 y(n)=x(n-2)+w(n) k=length(y); xk=fft(x,2*k); yk=fft(y,2*k); rm=real(ifft(conj(xk).*yk)); rm=[rm(k+2:2*k),rm(1:k)]; m=(-k+1):(k-1); rm=ifftshift(rm); stem(m,rm); xlabel('m'); ylable('幅度'); title('x(n)与 y(n)的互相关系数'); 程序代码 2.2 2.2.1 其差分方程为:y(n)-0.8145y(n-4)=x(n)+x(n-4) 2.2.2 clear all fs=1000; b = [1 0 0 0 1]; a = [1 0 0 0 -0.8145]; [h,f]=freqz(b,a,512,fs);%差分方程 mag=abs(h);%幅度 ph=angle(h);%相位 subplot(2,1,1); ph=ph*180/pi;%从弧度转化为角度 plot(f,mag); grid; xlabel('Frequency/Hz'); ylabel('Magnitude'); title('幅频图'); subplot(2,1,2); plot(f,ph); grid; xlabel('Frequency/Hz');ylabel('Phase'); title('相频图'); 2.2.3 clear all N=200; n=linspace(-100,100,N); x=sin(pi*n/2)+5*cos(pi*n); N_fft=2^nextpow2(2*N); w=linspace(0,2*pi,N_fft); h_fft=(1+exp(-1j*4*w))./(1-0.8145*exp(-1j*4*w)); 7
x_fft=fft(x,N_fft); y_fft=x_fft.*h_fft; y_temp=fftshift(ifft(y_fft)); y=y_temp(N_fft/2:N_fft/2+N-1); figure; plot(w,abs(h_fft),'b'); hold on; plot(w,angle(h_fft),'g'); legend('幅度','相位') figure; plot(n,x,'b'); hold on; plot(n,real(y),'g'); legend('x(n)','y(n)稳态部份') 程序代码 2.3 fs=2000; fc1=300; %下限截止频率 fc2=600; %上限截止频率 N=31; %滤波器的阶数 wlp=fc1/(fs/2); whp=fc2/(fs/2); wn=[wlp,whp]; %滤波器归一化后的上下限截止频率 w1=boxcar(N); %矩形窗的时域响应 w2=hanning(N); %汉宁窗的时域响应 w3=hamming(N);%海明窗的时域响应 w4=blackman(N); %布莱克窗的时域响应 %用不同的窗函数设计 N 阶的滤波器 b1=fir1(N-1,wn,w1); b2=fir1(N-1,wn,w2); b3=fir1(N-1,wn,w3); b4=fir1(N-1,wn,w4); %求出滤波器的频率响应 [H1, f1]=freqz(b1,1,512,fs); [H2, f2]=freqz(b2,1,512,fs); [H3, f3]=freqz(b3,1,512,fs); [H4, f4]=freqz(b4,1,512,fs); figure subplot(2,1,1); plot(f1,20*log10(abs(H1))); xlabel('Frequency/Hz'); ylabel('amplitude/dB'); title('矩形窗的幅频特性'); 8
分享到:
收藏