数字信号处理第三次实验代码及波形图
数字信号处理实验三
![数字信号处理实验三](https://img.taocdn.com/s3/m/0cefbeea6294dd88d0d26b38.png)
实验三 离散付里叶变换(DFT )一、实验目的:1. 掌握离散付里叶级数 2. 掌握DFT 变换。
3. 掌握DFT 特性。
4. 掌握利用DFT 计算线性卷积。
5. 掌握快速付里叶变换(FFT)。
二、实验原理:1.离散付里叶级数(DFS ) )(~n x 为周期序列,其频率为基本频率(N /2π)的倍数(或谐波)。
其离散付叶级数(DFS )为:;∑-=-±==12,,1,0,)(~)(~N n knNjk en x k X πIDFS 为:∑-==12)(~1)(~N k knNjek X Nn x π2.离散付里叶变换(DFT ))(n x 为长度N 的有限长序列,其DFT 为:211()()N jknNk x n X k eNπ--==∑IDFT 为:21()(),0,1,N jknNn X k x n ek π-===±∑3.DFT 的特性:(1) 线性性:)]([)]([)]()([2121n x bDFT n x aDFT n bx n ax DFT +=+(2) 循环折叠(圆周对称)性:⎩⎨⎧-≤≤-==-11)(0)0())((N n n N x n x n x N(3) 共轭性: N k X n x DFT ))(()]([**-=(4) 实序列的对称性(圆周共轭对称性):N k X k X ))(()(*-=(5) 序列的圆周移位:N m n x m n x ))(()(~-=-(6) 频域中的圆周移位:)())(()]([|lnk R l k X n x W DFT N N N-=-(7) 时域循环卷积:)()()]()([2121k X k X n x n x DFT =⊗ (8) 频域循环卷积(乘法性):)()(1)]()([2121k X k X Nn x n x DFT ⊗=(9) 帕塞瓦尔(Parseval )定理:∑∑-=-===1212)(1)(N k N n x k X Nn x E4.用DFT 计算线性卷积:设)(1n x 为1N 点序列,)(2n x 为2N 点序列,)(3n x 为)(1n x 和)(2n x 的线性卷积,其为121-+N N 点序列,)(4n x 为)(1n x 和)(2n x 的圆卷积,其长度为N ,当121-+=N N N 时,)()(43n x n x =。
华南理工大学数字信号处理实验三实验报告
![华南理工大学数字信号处理实验三实验报告](https://img.taocdn.com/s3/m/a51703d4856a561252d36f6b.png)
% 默认采样率 4000Hz,通带波纹 1dB,最小阻带衰减 40dB
% 符号
符号说明
% fp
通带截止频率,单位:Hz
% fs
阻带截止频率,单位:Hz
% fsam
采样率,单位:Hz
% pr
通带波纹(passband ripple),单位:dB
% minsa
最小阻带衰减(minimum stopband attenuation),单位:dB
3.1 低通滤波器设计
3.1.1 实验题目
一、 用双线性变换法设计如下 IIR 滤波器,(可以选择 butteworth or chebyshey) 滤波器的性能指标:
低通滤波器:通带截止频率 1000Hz,阻带截止频率 1200Hz,采样率 4000Hz, 通带波纹 1dB,最小阻带衰减 40dB; 二、要画出滤波器的频率响应特性(用 freqz 函数)
2.2 低通滤波器
低通滤波器是容许低于截止频率的信号通过,但高于截止频率的信号不能通 过的一种滤波器。其频谱响应形如图 1 所示。
图 1 低通滤波器频谱相应示例
2.3 高通滤波器
高通滤波器是一个使高频率比较容易通过而阻止低频率通过的系统。它去掉 了信号中不必要的低频成分或者说去掉了低频干扰。其频谱相应如图 2。
数字 IIR 滤波器。 掌握 MATLAB 函数书写,特别是用 MATLAB 函数封装自己设计的滤波器,
并实现参数可调。
2 实验原理
2.1 IIR 滤波器
按脉冲响应来分类,数字滤波器分为 IIR 和 FIR,即无限冲激响应滤波器和 有限冲激响应滤波器;其中 IIR 网络中有反馈回路,FIR 网络中没有反馈回路。 IIR 滤波器是无限脉冲响应滤波器,又称递归型滤波器,即结构上带有反馈环路。 特点:
北邮-DSP数字信号处理 实验-实验报告
![北邮-DSP数字信号处理 实验-实验报告](https://img.taocdn.com/s3/m/33971e3caf45b307e9719719.png)
北京邮电大学电子工程学院电子实验中心<数字信号处理实验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx 实验时间: xxx评定成绩:目录一、常规实验 (3)实验一常用指令实验 (3)1.试验现象 (3)2.程序代码 (3)3.工作原理 (3)实验二数据储存实验 (4)1.试验现象 (4)2.程序代码 (4)3.工作原理 (4)实验三I/O实验 (5)1.试验现象 (5)2.程序代码 (5)3.工作原理 (5)实验四定时器实验 (5)1.试验现象 (5)2.程序代码 (6)3.工作原理 (9)实验五INT2中断实验 (9)1.试验现象 (9)2.程序代码 (9)3.工作原理 (13)实验六A/D转换实验 (13)1.试验现象 (13)2.程序代码 (14)3.工作原理 (18)实验七D/A转换实验 (19)1.试验现象 (19)2.程序代码 (19)3.工作原理 (37)二、算法实验 (38)实验一快速傅里叶变换(FFT)算法实验 (38)1.试验现象 (38)2.程序代码 (38)3.工作原理 (42)实验二有限冲击响应滤波器(FIR)算法实验 (42)1.试验现象 (42)2.程序代码 (42)3.工作原理 (49)实验三无限冲击响应滤波器(IIR)算法实验 (49)1.试验现象 (49)2.程序代码 (49)3.工作原理 (56)作业设计高通滤波器 (56)1.设计思路 (56)2.程序代码 (57)3.试验现象 (64)一、常规实验实验一常用指令实验1.试验现象可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
2.程序代码.mmregs.global _main_main:stm #3000h,spssbx xf ;将XF置1,D3熄灭call delay ;调用延时子程序,延时rsbx xf ;将XF置0,D3点亮call delay ;调用延时子程序,b _main ;程序跳转到"_MAIN"nopnop;延时子程序delay:stm 270fh,ar3 ;将0x270f(9999)存入ar3loop1:stm 0f9h,ar4 ;将0x0f9(249)存入ar4loop2:banz loop2,*ar4- ;*ar4自减1,不为0时跳到loop2的位置banz loop1,*ar3- ;*ar3自减1,不为0时跳到loop1的位置ret ;可选择延迟的返回nopnop.end3.工作原理主程序循环执行:D3熄灭→延时→D3点亮→延时。
Matlab数字信号处理实验报告
![Matlab数字信号处理实验报告](https://img.taocdn.com/s3/m/300ac010580102020740be1e650e52ea5518cead.png)
Matlab数字信号处理实验报告本次实验使用MATLAB进行数字信号处理操作,目的是熟悉MATLAB中数字信号处理的相关工具箱,并进一步理解数字信号处理的基本概念和算法。
一、实验内容1.信号的生成与显示2.时域分析和频域分析3.滤波器设计4.数字滤波器性能分析二、实验步骤在MATLAB中,使用sawtooth函数生成一个锯齿波信号,并使用plot函数进行时域波形的显示。
代码如下:f = 1000;fs = 40000;t = 0:1/fs:0.01;y = sawtooth(2*pi*f*t);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');时域分析包括波形的观察和参数分析,如幅值、均值、方差等。
频域分析则是对信号进行傅里叶变换,得到其频谱图,包括频率分布和强度分布。
%时域分析amp = max(y)-min(y);mean_y = mean(y);var_y = var(y);设计一个低通滤波器,将高于1kHz的频率成分滤掉。
对滤波后的信号进行时域分析和频域分析,比较滤波前后信号的特征参数和频谱特征,并绘制原始信号、滤波后信号及其频谱图。
subplot(2,2,1);plot(t,y);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave');subplot(2,2,2);plot(t,y_filt);xlabel('Time (s)');ylabel('Amplitude');title('Sawtooth Wave After Filter');subplot(2,2,3:4);plot(f2,fft_y_filt,'r',f,fft_y,'g');xlabel('Frequency (Hz)');ylabel('Amplitude');title('Sawtooth Wave Spectrum Comparison');legend('After Filter','Before Filter');三、实验结果与分析通过生成并显示一段锯齿波信号,并对其进行时域和频域分析,可以得到该信号的关键信息,如幅值、均值、方差和频率分布特性。
数字信号处理Matlab实验三-IIR数字滤波器的设计
![数字信号处理Matlab实验三-IIR数字滤波器的设计](https://img.taocdn.com/s3/m/f9b74cc3b52acfc788ebc931.png)
XX XX 大学XXXX 学院实验名称 IIR 数字滤波器的设计实验目的:加深理解IIR 数字滤波器的时域特性和频域特性,掌握IIR 数字滤波器的设计原理与设计方法,以及I IR数字滤波器的应用。
实验内容:IIR 数字滤波器一般为线性移不变的因果离散系统,N 阶IIR 数字滤波器的系统函数可以表达为-1z 的有理多项式,即 -1-1-2-M =0012-1-2-N -112=1z +z +z ++z (z)==1+z +z ++z 1+zM j j M N Ni i b b b b b H a a a a ∑∑ 式中:系数i a 至少有一个非零。
对于因果II R数据滤波器,应满足M N ≤。
IIR 数字滤波器的设计主要通过成熟的模拟滤波器设计方法来实现。
首先在频域将数字滤波器设计指标转换为模拟滤波器设计指标,然后将任意的模拟滤波器为原型模拟低通滤波器指标,根据模拟滤波器的设计指标来设计出模拟低通滤波器(s)LP H ,然后又(s)LP H 经过相应的复频域转换得到H(s),最后又H(s )经过脉冲响应不变法或双线性变换法得到所需要的III R数字滤波器H (z)。
由此可见,IIR 数字滤波器设计的重要环节是模拟滤波器的设计。
设计模拟低通滤波器的主要方法有Butterwor t、Ch eby shev 、和椭圆等滤波器设计方法。
实验步骤1.Butterw ort 数字滤波器设计(1) Bu tt erwort 滤波器是通带阻带都单调衰减的滤波器。
调用b uttord 函数可以确定巴特沃斯滤波器的阶数,其格式为:[N,Omegac ]=bu tt ord(Omegap,Ome gas,Rp,As ,’s ’)。
其中,输入参数Rp,As 分别为通带最大衰减和阻带最小衰减,以d B为单位;Om eg ap,Omegas 分别为通带截止频率和阻带截止频率,‘s ’说明所设计的是模拟滤波器。
输出参数为滤波器的阶数,Omegac为3dB截止频率。
数字信号处理实验一、二、三 、实验四2
![数字信号处理实验一、二、三 、实验四2](https://img.taocdn.com/s3/m/62c9e6c62f60ddccdb38a07b.png)
实验一用于信号处理的MATLAB 基本操作1、用MATLAB 计算产生x(n)=sin(pi*n/5),n=-5:5,并绘出波形图。
解:n=-5:5;y=sin(pi*n/5); plot(n,y ,'b*-'); xlabel('-5-5'); ylabel('-1-1');-5-4-3-2-1012345-5-5-1-1实验二、离散时间系统的时域分析2、编写教材P35(1.12t)的)(n y 运算的MATLAB 程序。
(1)、x1=0.5^n*u(n),x2=R5(n)的线性卷积; 解:n=0:Nh-1;h1=(0.5).^n; %产生h1(n ) h2=h1;nx=0: Nx-1;x1=ones(1,Nx); %产生x1(n) x2= zeros(1,Nx+m);for k=m+1:m+Nx; %产生x2(n)= x1(n-m) x2(k)= x1(k-m);end %产生x2(n)y1=conv(x1,h1); %计算y1(n)=x1(n)*h1(n) y2=conv(x2,h2); %计算y2(n)=x2(n)*h2(n)subplot(3,2,1) stem(nx,x1,'.')axis([0 30 0 1.2]),title('x1(n)')subplot(3,2,3) %绘图 stem(n, h1)axis([0 30 0 1.2]),title('h1(n)') subplot(3,2,5)stem(y1),title('y1(n)') subplot(3,2,2) stem(x2,'.')axis([0 40 0 1.2]),title('x2(n)') subplot(3,2,4) stem(n,h2,'.')axis([0 40 0 1.2]),title('h2(n)') subplot(3,2,6)stem(y2),title('y2(n)')102030x1(n)h1(n)012y1(n)00.51x2(n)h2(n)12y2(n)(2)、x1=2^R4(n),x2(n)=δ(n)-δ(n-2)的卷积。
数字信号处理高西全实验报告三
![数字信号处理高西全实验报告三](https://img.taocdn.com/s3/m/09cf7fb1804d2b160a4ec0d3.png)
数字信号处理高西全实验报告三选择FFT的变换区间N为8和16 两种情况进行频谱分析^p 。
分别打印其幅频特性曲线。
并进行对比、分析^p 和讨论。
(2)对以下周期序列进行谱分析^p 。
选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析^p 。
分别打印其幅频特性曲线。
并进行对比、分析^p 和讨论。
(3)对模拟周期信号进行谱分析^p选择采样频率,变换区间N=16,32,64 三种情况进行谱分析^p 。
分别打印其幅频特性,并进行分析^p 和讨论。
四、程序码与运行结果(1) 实验程序:1n=[ones(1,4)];M=8;a=1:(M/2); b=(M/2):-1:1; 2n=[a,b];3n=[b,a];1k8=fft(1n,8);1k16=fft(1n,16);2k8=fft(2n,8);2k16=fft(2n,16);3k8=fft(3n,8);3k16=fft(3n,16);以下绘制幅频特性曲线n=0:length(1k8)-1;subplot(3,2,1);stem(n,abs(1k8),#;.#;);label({#;ω/π#;;#;8点DFT[1(n)]#;});ylabel(#;幅度#;);n=0:length(1k16)-1;subplot(3,2,2);stem(n,abs(1k16),#;.#;);label({#;ω/π#;;#;16点DFT[1(n)]#;});ylabel(#;幅度#;); n=0:length(2k8)-1;subplot(3,2,3);stem(n,abs(2k8),#;.#;);label({#;ω/π#;;#; 8点DFT[2(n)]#;});ylabel(#;幅度#;); n=0:length(2k16)-1;subplot(3,2,4);stem(n,abs(2k16),#;.#;);label({#;ω/π#;;#;16点DFT[2(n)]#;});ylabel(#;幅度#;); n=0:length(3k8)-1;subplot(3,2,5);stem(n,abs(3k8),#;.#;);l abel({#;ω/π#;;#; 8点DFT[3(n)]#;});ylabel(#;幅度#;); n=0:length(3k16)-1;subplot(3,2,6);stem(n,abs(3k16),#;.#;);label({#;ω/π#;;#;16点DFT[3(n)]#;});ylabel(#;幅度#;); 图形:(2)实验程序:n=0:7;4n=cos(pi/4n);4k8=fft(4n,8);subplot(2,2,1);stem(2n/8,abs(4k8),#;.#;);label({#;ω/π#;;#;8点DFT[4(n)]#;});ylabel(#;幅度#;); 5n=cos(pi/4n)+cos(pi/8n);5k8=fft(5n,8);subplot(2,2,2);stem(2n/8,abs(5k8),#;.#;);label({#;ω/π#;;#;8点DFT[5(n)]#;});ylabel(#;幅度#;); n=0:15;4n=cos(pi/4n);5n=cos(pi/4n)+cos(pi/8n);4k16=fft(4n,16);subplot(2,2,3);stem(2n/16,abs(4k16),#;.#;);label({#;ω/π#;;#;16点DFT[4(n)]#;});ylabel(#;幅度#;); 5k16=fft(5n,16);subplot(2,2,4);stem(2n/16,abs(5k16),#;.#;);label({#;ω/π#;;#;16点DFT[5(n)]#;});ylabel(#;幅度#;); 图形:(3)实验代码:Fs=64;T=1/Fs;N=16;n=0:N-1;6nT=cos(8pinT)+cos(16pinT)+cos(20pinT);6k16=fft(6nT);6k16=fftshift(6k16);Tp=NT;F=1/Tp;k=-N/2:N/2-1;fk=kF;subplot(3,1,1);stem(fk,abs(6k16),#;.#;);label({#;f(Hz)#;;#;16点DFT[6(nT)]#;});ylabel(#;幅度#;); N=32;n=0:N-1;6nT=cos(8pinT)+cos(16pinT)+cos(20pinT);6k32=fft(6nT,32);6k32=fftshift(6k32);Tp=NT;F=1/Tp;k=-N/2:N/2-1;fk=kF;subplot(3,1,2);stem(fk,abs(6k32),#;.#;);label({#;f(Hz)#;;#;32点DFT[6(nT)]#;});ylabel(#;幅度#;); N=64;n=0:N-1;6nT=cos(8pinT)+cos(16pinT)+cos(20pinT);6k64=fft(6nT,64);6k64=fftshift(6k64);Tp=NT;F=1/Tp;k=-N/2:N/2-1;fk=kF;subplot(3,1,3);stem(fk,abs(6k64),#;.#;);label({#;f(Hz)#;;#;64点DFT[6(nT)]#;});ylabel(#;幅度#;);图形:五、实验总结1.结论用DFT对信号进行谱分析^p 时,重点关注频谱分辨率和分析^p 误差,频谱分辨率F=1/Tp=Fs/N,可以依据此等式来选择FFT的变换区间N,而误差主要来自于用FFT作频谱分析^p 时,得到的是离散谱,而当信号是非周期信号时,应该得到连续谱,只有当N较大时,用FFT做出来的离散谱才接近于连续谱,因此N要适当选择大一些。
(完整版)数字信号处理实验三
![(完整版)数字信号处理实验三](https://img.taocdn.com/s3/m/195b6604dd88d0d232d46a45.png)
3.41;3.42 由教材可知: ,即序列的偶部分的傅立叶变换是序列的傅立叶变换的实部。
5、实验步骤
1、进行本实验,首先必须熟悉matlab的运用,所以第一步是学会使用matlab。
2、学习相关基础知识,根据《数字信号处理》课程的学习理解实验内容和目的。
plot(w/pi,angle(h1));grid
xlabel('\omega/\pi');ylabel('以弧度为单位的相位');
title('原序列的相位谱')
subplot(2,2,4)
plot(w/pi,angle(h2));grid
xlabel('\omega/\pi');ylabel('以弧度为单位的相位');
grid;
title('相位谱arg[H(e^{j\omega})]');
xlabel('\omega/\pi');
ylabel('以弧度为单位的相位');
3.4
clf;
w=-4*pi:8*pi/511:4*pi;
num1=[1 3 5 7 9 11 13 15 17];
h=freqz(num,1,w);
Q3.32 通过加入合适的注释语句和程序语句,修改程序P3.8,对程序生成的图形中的两个轴加标记。时移量是多少?
Q3.33 运行修改后的程序并验证离散傅里叶变换的圆周时移性质。
Q3.36 运行程序P3.9并验证离散傅里叶变换的圆周卷积性质。
Q3.38 运行程序P3.10并验证线性卷积可通过圆周卷积得到。
数字信号处理实验3 FFT算法应用
![数字信号处理实验3 FFT算法应用](https://img.taocdn.com/s3/m/e71339d65acfa1c7ab00cc02.png)
图 6-2
>> xlabel('n');ylabel('x[n]');
图 6-1
理论分析如下:
由欧拉公式得: x[n] cos(2 7n) 1 cos(2 19n)
N
2N
1
(e
j 2 7n N
e
j 2 ( N 7n) N
1
e
j 2 19n N
1
e
j 2 ( N 19n)
N
)
2
2
2
j 2 kn
对 p[n] e N ,其 2N 点的 DFT 变换为:
2N 1
j 2mn 2N 1 j 2n(2km)
X (k) 。
(2) 已知某序列 x(n) 在单位圆上的 N=64 等分样点的 Z 变换为
X (zk
)
X
(k)
1 1 0.8e j2k / N
,k
0,1,2,...,63
。
_
_
用 N 点 IFFT 程序计算 x(n) IDFT[ X (k)],绘出和 x(n) 。
实验要求:利用 MATLAB 编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结 果的原因。 (1) 用以下代码实现可得图 6-1 所示的 DFT 图。 >> N=64; >> n=0:2*N-1; >> x=cos(2*pi*7*n/N)+1/2*cos(2*pi*19*n/N); >> X=fft(x,128); >> k=n; >> stem(k,abs(X)) >> grid >> xlabel('k');ylabel('|X[k]|');
华南理工大学数字信号处理实验报告3(曹老师)
![华南理工大学数字信号处理实验报告3(曹老师)](https://img.taocdn.com/s3/m/5942572082c4bb4cf7ec4afe04a1b0717ed5b351.png)
华南理⼯⼤学数字信号处理实验报告3(曹⽼师)⼀、实验⽬的加深对LTI 系统的理解以及分析。
⼆、实验原理系统输⼊、输出关系可⽤以下差分⽅程描述:∑∑==-=-Mk k Nk kk n x p k n y d][][系统响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y ][][][][][当Nk d k ,...2,1,0==时,h[n]是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
系统的转移函数为 NN M M z d z d d z p z p p z D z p z H ----++++++==......)()()(110110三、实验内容1、⽤函数y=filter(p,d,x)实现差分⽅程的仿真,也可以⽤函数 y=conv(x,h)计算卷积,⽤y=impz(p,d,N)求系统的冲激响应,再⽤卷积来计算任意信号作⽤于系统的响应。
求两个系统]1[][]2[125.0]1[75.0][--=-+-+n x n x n y n y n y]}4[]3[]2[]1[{25.0][-+-+-+-=n x n x n x n x n y 各⾃的冲激响应,并且⽐较filter和conv 函数的区别实验代码如下:clear%离散时间序列x[n] n = 0:9; x = 5*exp(-n); subplot(4,2,1); stem(n,x)title('离散时间序列x[n]');%⽤filter函数滤波a1 = [1 , 0.75 , 0.125];b1 = [1 , -1];y1 = filter(b1,a1,x);subplot(4,2,3);stem(n,y1)title('filter滤波1');a2 = [1];b2 = [0 , 0.25 , 0.25 , 0.25 , 0.25]; y2 = filter(b2,a2,x);subplot(4,2,4);stem(n,y2)title('filter滤波2');%求系统的冲激响应h1 = impz(b1,a1,10);subplot(4,2,5);stem(n,h1)title('冲激响应1');h2 = impz(b2,a2,10);subplot(4,2,6);stem(n,h2)title('冲激响应2');%⽤conv函数计算卷积y3 = conv(x,h1);subplot(4,2,7);stem(y3)title('卷积1');y4 = conv(x,h2);subplot(4,2,8);stem(y4)title('卷积2');实验结果如下:离散时间序列x[n]filter 滤波2冲激响应1冲激响应22468101214161820卷积22、⽤函数[z ,p ,K]=tf2zp (num ,den )求得有理分式形式的系统转移函数的零、极点,⽤函数zplane (z ,p )绘出零、极点分布图;也可以⽤函数zplane (num ,den )直接绘出有理分式形式的系统转移函数的零、极点分布图。
数字信号处理,matlab实验报告
![数字信号处理,matlab实验报告](https://img.taocdn.com/s3/m/6cde3568f5335a8102d220fa.png)
Matlab实验报告实验一:1.实验Matlab代码:N=25;Q=0.9+0.3*j;WN=exp(-2*j*pi/N);x=zeros(25,1);format long; %长整型科学计数for k0=1:25x(k0,1)=Q^(k0-1);end;for k1=1:25;X1(k1,1)=(1-Q^N)/(1-Q*WN^(k1-1));end;X1;X2=fft(x,32);subplot(3,1,1);stem(abs(X1),'b.');axis([0,35,0,15]);title('N=25,formular');xlabel('n'); subplot(3,1,2);stem(abs(X2),'g.');axis([0,35,0,15]);title('N=32, FFT');xlabel('n');for(a=1:25)X3(a)=X1(a)-X2(a)end;subplot(3,1,3);stem(abs(X3),'r.');title('difference');xlabel('n');实验结果如图:实验结论:可以看出基2时间抽选的FFT算法与利用公式法所得到的DFT结果稍有偏差,但不大,在工程上可以使用计算机利用FFT处理数据。
2.实验Matlab代码:N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');实验结果如图:实验结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
数字信号实验报告 (全)
![数字信号实验报告 (全)](https://img.taocdn.com/s3/m/83e11dc0a1c7aa00b52acbab.png)
三、实验内容和步骤
对以下典型信号进行谱分析:
x1 (n) R4 (n) n 1, x 2 (n) 8 n, 0 , 4 n, x3 (n) n 3, 0, 0n3 4n7
其它n
0n3 4n7
其它n
nห้องสมุดไป่ตู้
x4 ( n) cos
4
用 FFT 对信号作频谱分析是学习数字信号处理的重要内容。 经常需要进行谱 分析的信号是模拟信号和时域离散信号。 对信号进行谱分析的重要问题是频谱分 辨率 D 和分析误差。 频谱分辨率直接和 FFT 的变换区间 N 有关, 因为 FFT 能够实 现的频率分辨率是 2π /N≤D。可以根据此时选择 FFT 的变换区间 N。误差主要 来自于用 FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续 谱,只有当 N 较大时离散谱的包络才能逼近于连续谱,因此 N 要适当选择大一 些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作 FFT,得到的离散谱 才能代表周期信号的频谱。 如果不知道信号周期,可以尽量选择信号的观察时间 长一些。 对模拟信号的频谱时, 首先要按照采样定理将其变成时域离散信号。如果是 模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照 周期序列的谱分析进行。
3 k 1
1
0.7051 z 2
0.0007378 1 z 1 1 1.0106 z 1 0.3583 z 2 1 0.9044 z 1 0.2155 z 2
6
H k z
(2.1)
式中:
H k z
A 1 2 z 1 z 2 ,k 1, 2, 3 1 Bk z 1 Ck z 2
数字信号处理实验三
![数字信号处理实验三](https://img.taocdn.com/s3/m/e89a7aef7e21af45b207a861.png)
实验报告课程名称: 数字信号处理院系部:电气与电子工程学院专业班级:信息1002学生姓名:王萌学号: 1101200219同组人:实验台号:指导教师:范杰清成绩:华北电力大学(北京)实验二 时域抽样与频域抽样一、实验目的加深理解连续时间信号的离散化过程中的数学概念和物理概念,掌握时域抽样定理的基本内容。
掌握由抽样序列重建原连续信号的基本原理与实现方法,理解其工程概念。
加深理解频谱离散化过程中的数学概念和物理概念,掌握频域抽样定理的基本内容。
二、 实验原理时域抽样定理给出了连续信号抽样过程中信号不失真的约束条件:对于基带信号,信号抽样频率fsam 大于等于2倍的信号最高频率fm ,即 fsam 2fm 。
时域抽样是把连续信号x(t)变成适于数字系统处理的离散信号x[k] ;信号重建是将离散信号x[k]转换为连续时间信号x(t)。
非周期离散信号的频谱是连续的周期谱。
计算机在分析离散信号的频谱时,必须将其连续频谱离散化。
频域抽样定理给出了连续频谱抽样过程中信号不失真的约束条件。
三、实验内容:1、利用MATLAB 实现对 的抽样)20π2cos()(t t x ⨯=程序代码:自己设计:w0=2*pi*20;t=0:0.0001:0.1;x=cos(w0*t);plot(t,x);hold on;t=0:0.01:0.1;x=cos(w0*t);stem(t,x);hold off;所给代码:t0 = 0:0.001:0.1;x0 =cos(2*pi*20*t0);plot(t0,x0,'r')hold on%信号最高频率fm为20 Hz,%按100 Hz抽样得到序列。
Fs = 100;00.010.020.030.040.050.060.070.080.090.1-1-0.8-0.6-0.4-0.20.20.40.60.81连续信号及其抽样信号t=0:1/Fs:0.1;x=cos(2*pi*20*t);stem(t,x);hold offtitle('连续信号及其抽样信号')自己设计的程序结果截图:实际截图:2、已知序列}2,1,0;1,1,1{][==kkx对其频谱X(ejW)进行抽样。
数字信号处理 实验三 FIR数字滤波器的设计
![数字信号处理 实验三 FIR数字滤波器的设计](https://img.taocdn.com/s3/m/c5bfce2ce2bd960590c67750.png)
实验三 FIR 数字滤波器的设计一、实验目的和要求1.学习线性相位FIR 数字滤波器,熟悉线性相位FIR 滤波器的幅频特性和相位特性;2.理解FIR 滤波器的基本设计方法,掌握设计的原理、方法及步骤;3.了解各种窗函数对滤波器性能的影响,学会使用几种常见的窗函数设计FIR 滤波器,并观察实验结果;4.熟悉相应的计算机高级语言编程。
二、实验设备和分组1.每人一台PC 机;2.Windows 2000/XP 以上版本的操作环境;3.MatLab 6.5及以上版本的开发软件。
三、实验内容(一)实验准备1.五种窗函数基本参数2.窗函数法的设计步骤窗函数设计FIR 数字滤波器是从时域出发的,把理想滤波器的单位取样响应 用合适的窗函数截短成为有限长度的()h n ,使得h (n )逼近理想的()d h n 。
以实现所设计的滤波器的频率响应()j H e ω 逼近于理想滤波器的频率响应()j d H e ω 。
一个有限长的序列,如果满足频率采样定理的条件,可以通过频谱的有限个采样点的值准确地恢复。
频率抽样法正是采用这种思想来设计FIR 数字滤波器。
a .给定希望逼近的频率响应函数H d (e jw )。
b .求单位脉冲响应c .由过渡带宽及阻带最小衰减的要求,可选定窗形状,并估计窗口长度N 。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。
d. 计算所设计的FIR 滤波器的单位脉冲响应e .由h (n )求FIR 滤波器的系统函数 3.MATLAB 提供了fir1函数,以实现线性相位FIR 滤波器。
调用格式如下:hn=fir1(N, wc, ‘ftype’, window)参数:N :阶数wc :归一化的数字频率,0≤wc ≤1。
ftype :滤波器类型,如高通、带阻等。
当ftype=high 时,设计高通FIR 滤波器;当ftype=stop 时,设计带阻FIR 滤波器。
应当注意,在设计高通和带阻滤波器时,阶数N 只能取偶数(h(n)长度N+1为奇数)。
数字信号处理实验(1-7)原始实验内容文档(含代码)
![数字信号处理实验(1-7)原始实验内容文档(含代码)](https://img.taocdn.com/s3/m/3de343727fd5360cba1adb43.png)
实验要求1.每个实验进行之前须充分预习准备,实验完成后一周内提交实验报告;2.填写实验报告时,分为实验题目、实验目的、实验内容、实验结果、实验小结五项;3.实验报告要求:实验题目、实验目的、实验内容、实验结果四项都可打印;但每次实验的实验内容中的重要代码(或关键函数)后面要用手工解释其作用。
实验小结必须手写!(针对以前同学书写实验报告时候抄写代码太费时间的现象,本期实验报告进行以上改革)。
实验一信号、系统及系统响应实验目的:1. 掌握使用MATLAB进行函数、子程序、文件编辑等基本操作;2. 编写一些数字信号处理中常用序列的3. 掌握函数调用的方法。
实验内容:1.在数字信号处理的基本理论和MATLAB信号处理工具箱函数的基础上,可以自己编写一些子程序以便调用。
(1)单位抽样序列δ(n-n0)的生成函数impseq.m(2)单位阶跃序列u(n-n0)的生成函数stepseq.m(3)两个信号相加的生成函数sigadd.m(4)两个信号相乘的生成函数sigmult.m(5)序列移位y(n)=x(n-n0)的生成函数sigshift.m(6)序列翻褶y(n)=x(-n)生成函数sigfold.m(7)奇偶综合函数evenodd.m(8)求卷积和2.产生系列序列,并绘出离散图。
(1) x1(n)=3δ(n-2)-δ(n+4) -5≤n≤5(2) x3(n)=cos(0.04πn)+0.2w(n) 0≤n≤50其中:w(n)是均值为0,方差为1 的白噪声序列。
3.设线性移不变系统的抽样响应h(n)=(0.9)^n*u(n),输入序列x(n)=u(n)-u(n-10),求系统的输出y(n).实验二 系统响应及系统稳定性1.实验目的(1)掌握 求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。
2.实验原理与方法在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。
实验三、DFT和DCT及频域滤波
![实验三、DFT和DCT及频域滤波](https://img.taocdn.com/s3/m/80a45e844431b90d6d85c751.png)
一. 实验名称:数字信号的 DFT/DCT 及频域滤波 二. 实验目的1. 熟练掌握数字信号(1D )及数字图像(2D)离散傅立叶变换(DFT )及离散余弦变换(DCT )方法、基本原理及实现流程。
熟悉两种变换的性质,并能对 DFT 及 DCT 的结果进行必要解释。
2. 深入理解离散信号采样频率、奈奎斯特频率及频率分辨率等基本概念,弄清它们之间的相互关系。
了解离散傅里叶变换(DFT )中频率泄露的原因,以及如何尽量减少频率泄露影响的途径。
3. 熟悉和掌握利用 MATLAB 工具进行 1D/2D FFT 及 DCT 的基本步骤、MATLAB 函数使用及对具体变换的处理流程。
4. 能熟练应用 MATLAB 工具对数字图像进行 FFT 及 DCT 处理,并能根据需要进行必要的频谱分析和可视化显示。
三. 实验原理 1、 傅立叶变换● 傅立叶变换:非周期函数表示为正弦和/或余弦乘以加权函数的积分。
● 一维连续Fourier 变换对函数f (x )进行傅立叶变换得到F (u )()()2j xu F u f x e dx π+∞--∞=⎰(1)逆变换,即将F (u)变换到f (x )为()()2j xu f x F u e du π+∞-∞=⎰(2)● 一维离散Fourier 变换正变换(DFT)()12/0(),0,1,,1N j xu N x F u f x e u N π--===-∑L(3)逆变换(IDFT)()12/01(),0,1,,1N j xu Nu f x F u ex N Nπ-===-∑L (4)● 用幅值和相位表示傅立叶变换()()()j u F u F u eθ= (5)2、 离散余弦变换● 1D-DCT()()()()()()()1010,21=cos 0,1,2,...,12N c n N n F k w k f n g k n n k w k f n k N N π-=-==+⎛⎫=- ⎪⎝⎭∑∑,(6)()11k w k k N ⎧=⎪=≤≤-其中, (7)● IDCT 变换()()()()()()()1010=,21cos 0,1,2,...,12N ck N c k f n w k F k g k n n k w k F k n N N π-=-='+⎛⎫==- ⎪⎝⎭∑∑, (8)()011k w k k N ⎧=⎪=≤≤-其中,(9)● 矩阵形式 ==F Gf f GTF ,(10)()11 (1)3(21)cos cos ...cos 2226(21)2cos cos ...cos 222............(1)(1)3(1)(21)cos cos ...cos 222N N N N N G w n N N N N N N N N N N πππππππππ⎡⎤⎢⎥-⎛⎫⎛⎫⎛⎫⎢⎥ ⎪ ⎪ ⎪⎢⎥⎝⎭⎝⎭⎝⎭⎢⎥-⎛⎫⎛⎫⎛⎫⎢⎥= ⎪ ⎪⎪⎢⎥⎝⎭⎝⎭⎝⎭⎢⎥⎢⎥⎢⎥----⎛⎫⎛⎫⎛⎫⎢⎥⎪ ⎪⎪⎝⎭⎝⎭⎝⎭⎣⎦(11)()011n w n n N ⎧=⎪=≤≤-其中,(12)四. 实验步骤1. 1D 数字信号的FFT 及频谱分析 给定如下式(1)所示的1D 连续信号:2sin (30)0.5cos(120)4sin (240)x t t t πππ=++ (13)1) 设采样频率ƒs =1000Hz ,对信号x 进行离散化,并画出一个周内的信号振幅随时间变化的波形图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理第三次实验
一、实验目的:
1、掌握离散时间系统的DFT的MATLAB实现;
2、熟悉DTFT和DFT之间的关系。
3、了解信号不同变形的DFT与原信号DFT之间的关系
二、实验内容:
1.开发一个时域圆周移位的matlab函数cirshift.m并测试:设x(n)=[9 8 7 6 5 4 3],求x((n-4))8R8(n)以及x((n+5))8R8(n)。
function y=cirshift(x,m,N)
%长度为N的x序列(时域)作m点圆周位移
%-------------------------------------
%[y]=cirshift(x,m,N)
%y=包含圆周位移的输出序列
%x=长度<=N的输入序列
%m=移位样点数
%N=圆周缓冲器长度
%方法:y(n)=x((n-m)mod N)
%check for length of x
if length(x)>N
error('N必须>=x的长度')
end
x=[x zeros(1,N-length(x))];%将x补零到长度为N
n=[0:1:N-1];
n=mod(n-m,N);
y=x(n+1);
%主函数.m
clc;clear all;
x=[9 8 7 6 5 4 3];
y1=cirshift(x,4,8);
y2=cirshift(x,-5,8);
2. 开发一个圆周翻转的matlab函数cirflip.m并测试:设x(n)=[9 8 7 6 5 4 3 2 1],求x(n)的16点圆周翻转x((-n))16R16(n)。
function y=cirfilp(x,N)
nx=[0:1:N-1];
y=x(mod(-nx,N)+1);
%主函数.m
clc;clear all;
x=[9 8 7 6 5 4 3 2 1];
N=16;
x=[x zeros(1,N-length(x))];
nx=0:N-1;
y=cirfilp(x,16);
subplot(121),stem([0:N-1],x);title('原序列');
xlabel('n');ylabel('x(n)');grid;
subplot(122),stem([0:N-1],y);title('圆周翻褶序列');
xlabel('n');ylabel('x((n))16r16(n)');grid;
3. 开发一个分解圆周奇偶对称序列的matlab函数cirevod.m并测试:设x(n)=[9 8 7 6 5 4 3 2 1],将x(n)分解圆周奇偶对称序列
x ep(n) 、x op(n)。
function [xep,xop]=circevod(x)
%将实序列分解为圆周偶和圆周奇两部分
%------------------------------------
%[xep,xop]=circevod(x)
if any(imag(x)~=0)
error('x非实序列')
end
N=length(x);
n=0:N-1;
xep=0.5*(x+x(mod(-n,N)+1));
xop=0.5*(x-x(mod(-n,N)+1));
%主函数.m
x=[9 8 7 6 5 4 3 2 1];
[xep,xop]=circevod(x);
4. 开发一个实现DFT矩阵的函数wN=dftmtx(N)并测试N=4,8,16的DFT矩阵,在此基础上寻求IDFT矩阵wNI的编程方法并测试N=4,8,16的IDFT矩阵
%这是matlab自带的函数命令行输入type+dftmtx可查看源代码。
function D = dftmtx(n)
n = signal.internal.sigcasttofloat(n,'double','dftmtx','N',...
'allownumeric');
D = fft(eye(n));
命令行输入:
wN=dftmtx(N);
wNI=conj(dftmtx(N))/N
DFT
N=4
N=8
N=16
IDFT:N=4
N=8
N=16
5.自编工具函数XK=dft(xn,N)实现DFT以及IDFT,并测试x(n)=[9 8 7 6 5 4 3 2 1]的DFT。
function[Xk]=dft(xn,N)
n=[0:1:N-1];
k=n;
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^(nk);
Xk=xn*WNnk;
%主函数
xn=[9 8 7 6 5 4 3 2 1]
y=dft(x,9);
function[Xk]=idft(xn,N)
n=[0:1:N-1];
k=n;
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^(-nk);
Xk=(xn*WNnk)/N;
6. 开发一个圆周卷积计算的matlab函数y=circonvt(x1,x2,N),并测试x1(n)=[1 2 3 4 9], x2=[7 6 5 4 3 2 1],求8点圆周卷积。
function y=circonvt(x1,x2,N)
if length(x1)>N
error('N必须>=x1的长度')
end
if length(x2)>N
error('N必须>=x2的长度')
end
x1=[x1 zeros(1,N-length(x1))]; x2=[x2 zeros(1,N-length(x2))]; m=[0:1:N-1]; x2=x2(mod(-m,N)+1); H=zeros(N,N);
for n=1:1:N
H(n,:)=cirshift(x2,n-1,N); end
y=x1*H';
%test.6
x1=[1 2 3 4 9];
x2=[7 6 5 4 3 2 1];
y=circonvt(x1,x2,8);
7.教材P212 习题3.36.
余弦频率是正弦频率的两倍,故正弦周期是预先周期的两倍。
T=0.5s 抽样间隔T=0.01s,故N=50;
clear all;clc;
N=50;
n=[0:1:N-1];
k=n;
xn=2*sin(0.04*pi*n)+5*cos(0.08*pi*n);
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^(nk);
Xk=xn*WNnk;
magX=abs(Xk);
angX=angle(Xk);
subplot(121);stem(k,magX,'.');grid;
xlabel('k');title('幅度谱曲线');ylabel('X(k)');
subplot(122);stem(k,angX,'.');grid;
xlabel('k');title('相位谱曲线');ylabel('弧度');
因为抽样频率不变,要增大N才能减少谱泄露,故N=99;clear all;clc;
N=99;
n=[0:1:N-1];
k=n;
xn=2*sin(0.04*pi*n)+5*cos(0.08*pi*n);
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^(nk);
Xk=xn*WNnk;
magX=abs(Xk);
angX=angle(Xk);
subplot(121);stem(k,magX,'.');grid;
xlabel('k');title('幅度谱曲线');ylabel('X(k)'); subplot(122);stem(k,angX,'.');grid;
xlabel('k');title('相位谱曲线');ylabel('弧度');。