杭电_数字信号处理课程设计_实验2
数字信号处理_实验报告__实验二_应用快速傅立叶变换对信号进行频谱分析
数字信号处理_实验报告__实验⼆_应⽤快速傅⽴叶变换对信号进⾏频谱分析数字信号处理实验报告实验⼆应⽤快速傅⽴叶变换对信号进⾏频谱分析2011年12⽉7⽇⼀、实验⽬的1、通过本实验,进⼀步加深对DFT 算法原理合基本性质的理解,熟悉FFT 算法原理和FFT ⼦程序的应⽤。
2、掌握应⽤FFT 对信号进⾏频谱分析的⽅法。
3、通过本实验进⼀步掌握频域采样定理。
4、了解应⽤FFT 进⾏信号频谱分析过程中可能出现的问题,以便在实际中正确应⽤FFT 。
⼆、实验原理与⽅法1、⼀个连续时间信号)(t x a 的频谱可以⽤它的傅⽴叶变换表⽰()()j t a a X j x t e dt +∞-Ω-∞Ω=?2、对信号进⾏理想采样,得到采样序列()()a x n x nT =3、以T 为采样周期,对)(n x 进⾏Z 变换()()n X z x n z +∞--∞=∑4、当ωj ez =时,得到序列傅⽴叶变换SFT()()j j n X e x n e ωω+∞--∞=∑5、ω为数字⾓频率sT F ωΩ=Ω=6、已经知道:12()[()]j a m X e X j T T Tωπ+∞-∞=-∑ ( 2-6 ) 7、序列的频谱是原模拟信号的周期延拓,即可以通过分析序列的频谱,得到相应连续信号的频谱。
(信号为有限带宽,采样满⾜Nyquist 定理)8、⽆线长序列可以⽤有限长序列来逼近,对于有限长序列可以使⽤离散傅⽴叶变换(DFT )。
可以很好的反映序列的频域特性,且易于快速算法在计算机上实现。
当序列()x n 的长度为N 时,它的离散傅⾥叶变换为:1()[()]()N kn N n X k DFT x n x n W -===∑其中2jNN W eπ-=,它的反变换定义为:11()[()]()N kn Nk x n IDFT X k X k WN--===∑⽐较Z 变换式 ( 2-3 ) 和DFT 式 ( 2-7 ),令kN z W -=则1()()[()]|kNN nkN N Z W X z x n W DFT x n ---====∑ 因此有()()|kNz W X k X z -==kN W -是Z 平⾯单位圆上幅⾓为2k的点,也即是将单位圆N 等分后的第k 点。
《数字信号处理》实验
《数字信号处理》实验一、实验要求1.上机期间不允许玩游戏。
若发现,以实验不通过记分。
实验不通过者,本课程成绩记为0分。
2.每个同学上机前应认真准备与实验相关的知识,搞清理论概念。
上机期间认真独立完成实验内容,不能相互抄袭。
3.对在3次上机时间内完成实验的同学,采取当场验收方式确定成绩。
否则,需提交所做实验的源程序和结果软件,并同时提交实验报告,两者缺一不可。
4.实验报告要求写明实验内容、实现方法、实验结果(附所有结果曲线)及对相关结果的说明与讨论。
二、实验内容1.利用傅立叶级数展开的方法,自由生成所需的x(t);2.通过选择不同的采样间隔T(分别选T>或<1/2f c),从x(t)获得相应的x(n)(作出x(n)图形);3.对获得的不同x(n)分别作傅立叶变换,分析其频率响应特性(给出幅频与相频特性曲线);4.利用巴特沃思、切比雪夫或椭圆滤波器设计数字滤波器(滤波特性自定),要求通过改变滤波器参数或特性(低通、高通、带通或带阻)设计至少两种数字滤波器,分析所设计滤波器(画出频率特性曲线),并对上述给出的不同x(n)分别进行滤波(画出滤波结果),然后加以讨论;5.利用窗函数设计法或频率采样法设计数字滤波器(滤波特性自定),要求通过改变滤波器参数或特性(低通、高通、带通或带阻等)设计至少两种数字滤波器,分析所设计滤波器(画出频率特性曲线),并对上述给出的不同x(n)分别进行滤波(画出滤波结果),然后加以讨论。
三、实验工具可采用MA TLAB高性能数字计算和可视化软件中的Signal Processing Toolbox 完成上述实验。
四、实验时间、地点12月16日晚上(在计算中心E楼202、205机房)、12月17日下午2:00(在计算中心E楼2024、207、208机房)、12月24日上午8:00(在计算中心E楼203、2037、208机房)。
2011年8月30日。
数字信号处理课程设计毕业设计(论文)word格式
《数字信号处理》课程设计作业院系:物理工程学院电子信息科学与技术班级:1学号:20092250103姓名:冯军美实验一:音乐信号音谱和频谱的观察1.实验方案读取音乐信号并将信号装换为单声道的,并输出信号的波形图和频谱图%2.源程序clear all; close all;clc[x,fs,bit]=wavread('F:\费玉清-一剪梅00_01_23-00_01_28.wav');%读取音乐信号,其中x为截取的音乐信号size(x) %看音乐信号是单声道还是双声道sound(x,fs); %听原始音乐信号x=x(:,1); %获取单声道音乐信号N=length(x); %N为音乐信号的长度figureplot(x) %画音乐信号的连续波形grid on %产生虚线格title('音乐信号时域波型') %标注图注xlabel('Time') %x坐标ylabel('Magnitude') %y坐标F1=fft(x,N); %做音乐信号的N点快速傅里叶变换w=2/N*[0:N-1]; %w为连续频谱的数字角频率横坐标figureplot(w,abs(F1)) %连续频谱图grid ontitle('音乐信号频域波型')xlabel('Frequency/Hz')ylabel('Magnitude')%不同抽样频率下听取的音乐信号% sound(x,2*fs);sound(x,fs/2);3.输出波形0.511.522.5x 105-1-0.8-0.6-0.4-0.200.20.40.60.81音乐信号时域波型TimeM a g n i t u d e00.20.40.60.81 1.2 1.4 1.6 1.8250010001500200025003000音乐信号频域波型Frequency/HzM a g n i t u d e4.输出结果分析从音谱可看到音乐信号分布在整个时间轴上,幅值分布有规律;从频谱可看到音乐信号主要分布在低频段,高频成分较少,在0.4pi 以后几乎无音乐信号的频谱成分了5.回放声音信号特征的描述和解释当抽样率变为原来的2后,可听出音乐信号,但音乐明显比原来速度播放的快了,播放时间也比原来缩短了,而且音乐中听到的更多的是高频成分。
数字信号处理课程设计实验报告
数字信号处理课程设计实验报告数字信号处理课程设计实验报告(基础实验篇)实验⼀离散时间系统及离散卷积⼀、实验⽬的和要求实验⽬的:(1)熟悉MATLAB软件的使⽤⽅法。
(2)熟悉系统函数的零极点分布、单位脉冲响应和系统频率响应等概念。
(3)利⽤MATLAB绘制系统函数的零极点分布图、系统频率响应和单位脉冲响应。
(4)熟悉离散卷积的概念,并利⽤MATLAB计算离散卷积。
实验要求:(1)编制实验程序,并给编制程序加注释;(2)按照实验内容项要求完成笔算结果;(3)验证编制程序的正确性,记录实验结果。
(4)⾄少要求⼀个除参考实例以外的实例,在实验报告中,要描述清楚实例中的系统,并对实验结果进⾏解释说明。
⼆、实验原理δ的响应输出称为系统1.设系统的初始状态为零,系统对输⼊为单位脉冲序列()n的单位脉冲响应()h n。
对于离散系统可以利⽤差分⽅程,单位脉冲响应,以及系统函数对系统进⾏描述。
单位脉冲响应是系统的⼀种描述⽅法,若已知了系统的系统函数,可以利⽤系统得出系统的单位脉冲响应。
在MATLAB中利⽤impz 由函数函数求出单位脉冲响应()h n2.幅频特性,它指的是当ω从0到∞变化时,|()|Aω,H jω的变化特性,记为()相频特性,指的是当ω从0到∞变化时,|()|∠的变化特性称为相频特性,H jωω。
离散系统的幅频特性曲线和相频特性曲线直观的反应了系统对不同记为()频率的输⼊序列的处理情况。
三、实验⽅法与内容(需求分析、算法设计思路、流程图等)四、实验原始纪录(源程序等)1.离散时间系统的单位脉冲响应clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];impz(a,b,30);%离散时间系统的冲激响应(30个样值点)title('系统单位脉冲响应')axis([-3,30,-2,2]);2.(1)离散系统的幅频、相频的分析⽅法21-0.3()1 1.60.9425j j j e H z e e ωωω---=-+clcclear alla=[1,-0.3];b=[1,-1.6,0.9425];%a 分⼦系数,b 分母系数 [H,w]=freqz(a,b,'whole'); subplot(2,1,1); plot(w/pi,abs(H));%幅度 title('幅度谱');xlabel('\omega^pi');ylabel('|H(e^j^\omega)'); grid on;subplot(2,1,2);plot(w/pi,angle(H));%相位 title('相位谱');xlabel('\omega^pi'); ylabel('phi(\omega)'); grid on;(2)零极点分布图clc; clear all a=[1,-0.3];b=[1,-1.6,0.9425]; zplane(a,b);%零极图 title('零极点分布图')3.离散卷积的计算111()()*()y n x n h n =clcclear all% x=[1,4,3,5,3,6,5] , -4<=n<=2 % h=[3,2,4,1,5,3], -2<=n<=3 % 求两序列的卷积 clear all;x=[1,4,3,5,3,6,5]; nx=-4:2; h=[3,2,4,1,5,3];nh=-2:3;ny=(nx(1)+nh(1)):(nx(length(x))+nh(length(h))); y=conv(x,h);n=length(ny);subplot(3,1,1);stem(nx,x);xlabel('nx');ylabel('x'); subplot(3,1,2);stem(nh,h);xlabel('nh');ylabel('h'); subplot(3,1,3);stem(ny,y);xlabel('n');ylabel('x 和h 的卷积')五、实验结果及分析(计算过程与结果、数据曲线、图表等)1.离散时间系统的单位脉冲响应051015202530-2-1.5-1-0.500.511.52n (samples)A m p l i t u d e系统单位脉冲响应2.离散系统的幅频、相频的分析⽅法00.20.40.60.81 1.2 1.4 1.6 1.82 102030幅度谱ωp i|H (e j ω)0.20.40.60.811.21.41.61.82-2-1012相位谱ωp ip h i (ω)-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81Real PartI m a g i n a r y P a r t零极点分布图3.离散卷积的计算-4-3-2-1012nxx-2-1.5-1-0.500.51 1.522.53nhh -6-4-20246nx 和h 的卷积六、实验总结与思考实验⼆离散傅⽴叶变换与快速傅⽴叶变换⼀、实验⽬的和要求实验⽬的:(1)加深理解离散傅⾥叶变换及快速傅⾥叶变换概念; (2)学会应⽤FFT 对典型信号进⾏频谱分析的⽅法; (3)研究如何利⽤FFT 程序分析确定性时间连续信号; (4)熟悉应⽤FFT 实现两个序列的线性卷积的⽅法;实验要求:(1)编制DFT 程序及FFT 程序,并⽐较DFT 程序与FFT 程序的运⾏时间。
数字信号处理实验报告(二)
数字信号处理第二次实验报告学院:信息工程学院班级:2012级电子信息工程*班姓名:学号:20125507**指导老师:实验四:IIR数字滤波器设计及软件实现一、实验目的1、熟悉双线性变换设计IIR滤波器的原理与方法2、掌握IIR滤波器的MATLAB实现方法二、实验原理简述IIR数字滤波器间接法基本设计过程:1、将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;2、设计过渡模拟滤波器;3、将过渡模拟滤波器系统函数转换成数字滤波器的系统函数三、程序与图形1、%-----------------信号产生函数mstg---------------function st=mstg %功能函数的写法%产生信号序列向量st,并显示st的时域波形和频谱%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600N=1600 %N为信号st的长度。
Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp为采样时间t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10; %第1路调幅信号的载波频率fc1=1000Hz,fm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hzfc2=Fs/20; %第2路调幅信号的载波频率fc2=500Hzfm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hzfc3=Fs/40; %第3路调幅信号的载波频率fc3=250Hz,fm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hzxt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号st=xt1+xt2+xt3; %三路调幅信号相加fxt=fft(st,N); %计算信号st的频谱%-------绘制st的时域波形和幅频特性曲线-----subplot(2,1,1)plot(t,st);grid;xlabel('t/s');ylabel('s(t)');axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形')subplot(2,1,2)stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度')-10123t/ss (t )(b) s(t)的频谱f/Hz幅度2、%-------实验4-2--------- clear all;close allFs=10000;T=1/Fs; %采样频率%调用信号产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st st=mstg;fp=280;fs=450; %下面wp,ws,为fp,fs 的归一化值范围为0-1wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF 指标(低通滤波器的通、阻带边界频)[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp[B,A]=ellip(N,rp,rs,wp); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A[h,w]= freqz(B,A);y1t=filter(B,A,st); %滤波器软件实现 figure(2);subplot(2,1,1); plot(w,20*log10(abs(h))); axis([0,1,-80,0]) subplot(2,1,2);t=0:T:(length(y1t)-1)*T; plot(t,y1t);%axis([0,1,-80,0])-10123t/ss (t )(b) s(t)的频谱f/Hz幅度-80-60-40-20000.020.040.060.080.10.120.140.16-1-0.500.511.53、%-------实验4-3---------fpl=440;fpu=560;fsl=275;fsu=900;wp=[2*fpl/Fs,2*fpu/Fs];ws=[2*fsl/Fs,2*fsu/Fs];rp=0.1;rs=60;[N,wp]=ellipord(wp,ws,rp,rs); %调用ellipord 计算椭圆DF 阶数N 和通带截止频率wp[B,A]=ellip(N,rp,rs,wp); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A[h,w]= freqz(B,A); y2t=filter(B,A,st);figure(3);subplot(2,1,1);plot(w,20*log10(abs(h))); axis([0,1,-80,0]) subplot(2,1,2);t=0:T:(length(y2t)-1)*T; plot(t,y2t);00.20.40.60.81-80-60-40-20000.020.040.060.080.10.120.140.16-2-10124、%-------实验4-4--------- fp=900;fs=550;wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60; %DF 指标(低通滤波器的通、阻带边界频)[N,wp]=ellipord(wp,ws,rp,rs);%调用ellipord 算椭圆DF 阶数N 通带截止频率 [B,A]=ellip(N,rp,rs,wp,'high'); %调用ellip 计算椭圆带通DF 系统函数系数向量B 和A[h,w]= freqz(B,A); y3t=filter(B,A,st);figure(4);subplot(2,1,1); plot(w,20*log10(abs(h))); axis([0,1,-80,0]) subplot(2,1,2);t=0:T:(length(y3t)-1)*T; plot(t,y3t);-80-60-40-20000.020.040.060.080.10.120.140.16-2-1012四、实验结果分析由图可见,三个分离滤波器指标参数选取正确,损耗函数曲线达到所给指标。
数字信号处理课程设计
数字信号处理课程设计
一、概述
本次信号处理课程设计主要对常见的数字信号处理算法进行实现。
主要内容包括数字信号滤波器、傅立叶变换和数字信号检测算法。
通过实验,学生将学习主要处理手段;同时了解数字信号处理的基本原理和应用。
二、主要内容
(1)数字信号滤波器:实现简单的数字滤波器,同时计算滤波器的频率响应;
(2)傅立叶变换:实现常用的傅立叶变换,并利用变换后的信号图像进行频率分析;
(3)数字信号检测算法:实现基本的一阶和二阶差分算法,并利用此算法进行实时信号检测;
三、实验步骤
(1)准备实验材料:将数字信号的原始信号数据以文件的形式存储,使用MATLAB等软件进行处理;
(2)实现数字滤波器:实现一阶以及多阶低通、高通和带通滤波器,
并计算响应的频谱;
(3)实现傅立叶变换:实现Fourier变换后的信号图像处理,如二维DFT等;
(4)实现数字信号检测算法:实现一阶和二阶差分算法,并利用此算法进行实时信号检测;
(5)数字信号处理综合应用实验:针对实际的数字信号,分析信号的特征,并基于实验结果进行信号处理算法的比较。
四、实验结果
完成本次实验后,可以实现对不同数字信号的处理,掌握其中滤波器、傅立叶变换等数字信号处理理论,并掌握常规的算法,学会运用算法实现实际信号处理工程。
电子科大 数字信号处理实验2_FFT的实现
电 子 科 技 大 学实 验 报 告学生姓名:Shrimp 学 号: 指导教师:一、实验室名称:数字信号处理实验室 二、实验项目名称:FFT 的实现 三、实验原理:一.FFT 算法思想:1.DFT 的定义:对于有限长离散数字信号{x[n]},0 ≤ n ≤ N-1,其离散谱{x[k]}可以由离散付氏变换(DFT )求得。
DFT 的定义为:21[][]N jnk Nn X k x n eπ--==∑,k=0,1,…N-1通常令2jNN eW π-=,称为旋转因子。
2.直接计算DFT 的问题及FFT 的基本思想:由DFT 的定义可以看出,在x[n]为复数序列的情况下,完全直接运算N 点DFT 需要(N-1)2次复数乘法和N (N-1)次加法。
因此,对于一些相当大的N 值(如1024)来说,直接计算它的DFT 所作的计算量是很大的。
FFT 的基本思想在于,将原有的N 点序列分成两个较短的序列,这些序列的DFT 可以很简单的组合起来得到原序列的DFT 。
例如,若N 为偶数,将原有的N 点序列分成两个(N/2)点序列,那么计算N 点DFT 将只需要约[(N/2)2 ·2]=N 2/2次复数乘法。
即比直接计算少作一半乘法。
因子(N/2)2表示直接计算(N/2)点DFT 所需要的乘法次数,而乘数2代表必须完成两个DFT 。
上述处理方法可以反复使用,即(N/2)点的DFT 计算也可以化成两个(N/4)点的DFT (假定N/2为偶数),从而又少作一半的乘法。
这样一级一级的划分下去一直到最后就划分成两点的FFT 运算的情况。
3.基2按时间抽取(DIT )的FFT 算法思想:设序列长度为2L N =,L 为整数(如果序列长度不满足此条件,通过在后面补零让其满足)。
将长度为2L N =的序列[](0,1,...,1)x n n N =-,先按n 的奇偶分成两组:12[2][][21][]x r x r x r x r =+=,r=0,1,…,N/2-1DFT 化为:1/21/212(21)0/21/21221200/21/211/22/2[]{[]}[][2][21][][][][]N N N nk rk r kNNNn r r N N rk k rk NNN r r N N rk k rk N NN r r X k DFT x n x n Wx r Wx r W x r W Wx r W x r WWx r W ---+===--==--=====++=+=+∑∑∑∑∑∑∑上式中利用了旋转因子的可约性,即:2/2rkrkNN W W =。
(完整版)数字信号处理实验二
y = filter(num,den,x,ic);
yt = a*y1 + b*y2;
d = y - yt;
subplot(3,1,1)
stem(n,y);
ylabel('振幅');
title('加权输入: a \cdot x_{1}[n] + b \cdot x_{2}[n]的输出');
subplot(3,1,2)
%扫频信号通过2.1系统:
clf;
n = 0:100;
s1 = cos(2*pi*0.05*n);
s2 = cos(2*pi*0.47*n);
a = pi/2/100;
b = 0;
arg = a*n.*n + b*n;
x = cos(arg);
M = input('滤波器所需的长度=');
num = ones(1,M);
三、实验器材及软件
1.微型计算机1台
2. MATLAB 7.0软件
四、实验原理
1.三点平滑滤波器是一个线性时不变的有限冲激响应系统,将输出延时一个抽样周期,可得到三点平滑滤波器的因果表达式,生成的滤波器表示为
归纳上式可得
此式表示了一个因果M点平滑FIR滤波器。
2.对线性离散时间系统,若y1[n]和y2[n]分别是输入序列x1[n]和x2[n]的响应,则输入
plot(n, y);
axis([0, 100, -2, 2]);
xlabel('时间序号 n'); ylabel('振幅');
《数字信号处理》实验指导书v0.3
i
实验一 时域采样与频域采样
1. 实验目的
(1) 进一步加深 DFT 算法原理和基本性质的理解。 (2) 熟悉 FFT 算法原理和 FFT 子程序的应用。 (3) 学习用 FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误 差及其原因。
2.实验原理
(1) 复习 DFT 的定义、性质和用 DFT 作谱分析的有关内容。 (2) 复习 FFT 算法原理与编程思想。 (3) 查询 Matlab 中 fft 函数的用法,学会通过改变 fft 的参数计算不同 DFT。 (4) 编制信号产生子程序,产生以下典型信号供谱分析用:
画图时,用 20 lg | H (k ) | 打印幅度特性。第 k 点对应的频率
ωk =
2π k N 。为使曲线包络
jω DFT 变换区间要选大些。 例如窗口长度 N = 33 时, 线更接近 H (e ) 的幅度特性曲线,
可通过在 h(n) 末尾补零的方法,使长度变为 64,再进行 64 点 DFT,则可得到更精 确的幅度衰减特性曲线。
《数字信号处理》实验指导
浙江工业大学信息工程学院通信工程系 2010.4
目录
目录 ........................................................................................................................ i 实验一 时域采样与频域采样 ............................................................................. 1 实验二 用双线性变换法设计IIR数字滤波器 ................................................... 4 实验三 用窗函数法设计FIR数字滤波器........................................................... 6 附录:部分Matlab函数........................................................................................ 9
杭电数字信号处理实验2
信号、系统与信号处理实验Ⅱ实验报告姓名:王健学号:14072119班级:14083413上课时间:周五-六七八实验名称:离散系统频率响应和零极点分布一、实验目的通过使用MATLAB函数仿真简单的离散时间系统,研究其时频域特性,以加深对离散时间系统的冲击响应,频率响应分析和零极点分布概念的理解。
二、实验原理与要求对于一个线性时不变离散时间系统,其输入输出关系可用以下常系数线性差分方程描述:故此系统的系统函数可用下式表示:其频率响应为:将系统函数的分子,分母分别作因式分解,可得到LTI系统的零极点增益表达式为:通过系统的零极点增益表达式,可以判断一个LTI离散时间系统的稳定性。
对一个因果的离散时间系统,若所有的极点都位于单位圆内,则系统是稳定的,同理,由零极点分布图可以大致估计出系统的频率响应:(1)单位圆附近的零点对幅度响应的谷点的位置与深度有明显影响,当零点位于单位圆上时,谷点为零,零点可在单位圆外。
(2)单位圆附近的极点对幅度响应的峰点位置和高度有明显影响。
要求一个LTI离散时间系统的输入输出差分方程为:y(n)-1.6y(n-1)+1.28y(n-2)=0.5x(n)+0.1x(n-1)(1)编程求此系统的单位冲击响应,并画出波形(2)若输入: 编程求此系统的输出,并分别画出波形(3)编程得到系统频响的幅度响应和相位响应,并画图。
(4)编程得到系统的零极点图,并分析系统的因果性和稳定性。
(5)若系统为y(n)=0.45x(n)+0.5x(n-1)+0.45x(n-2)+0.53y(n-1)-0.46y(n-2) 在其上述解果。
三、实验程序与结果(1)y(n)-1.6y(n-1)+1.28y(n-2)=0.5x(n)+0.1x(n-1)系统的冲击响应、输出信号、幅频曲线、相频曲线、零极点图clear;clc;close all;b=[0.5 0.1];a=[1 -1.6 1.28];h=impz(b,a,50);stem(h);title('冲击响应')x=[1 2 3 4 5 zeros(1,50)];y=conv(x,h);figuresubplot(2,1,1)stem(y);title('conv方法输出信号')y1=filter(b,a,x);subplot(2,1,2)stem(y1);title('filter方法输出信号')[h,f]=freqz(b,a,512,2000);mag=abs(h);ph=angle(h)*180/pi;figuresubplot(2,1,1),plot(f,mag),xlabel('频率'),ylabel('幅度');title('幅频曲线')subplot(2,1,2),plot(f,ph);xlabel('频率'),ylabel('相位');title('相频曲线')[z p k]=tf2zp(b,a);figurezplane(z,p,k); title('零极点图');结果:(2)y(n)=0.45x(n)+0.5x(n-1)+0.45x(n-2)+0.53y(n-1)-0.46y(n-2) 系统的冲击响应、输出信号、幅频曲线、相频曲线、零极点图clear;clc;close all;b=[0.45 0.5 0.45];a=[1 -0.53 0.46];h=impz(b,a,50);stem(h); title('冲击响应')x=[1 2 3 4 5 zeros(1,50)];y=conv(x,h);figuresubplot(2,1,1)stem(y); title('conv方法输出信号')y1=filter(b,a,x);subplot(2,1,2)stem(y1); title('filter方法输出信号')[h,f]=freqz(b,a,512,2000);mag=abs(h);ph=angle(h)*180/pi;figuresubplot(2,1,1),plot(f,mag),xlabel('频率'),ylabel('幅度');title('幅频曲线')subplot(2,1,2),plot(f,ph);xlabel('频率'),ylabel('相位');title('相频曲线')[z p k]=tf2zp(b,a);figurezplane(z,p,k); title('零极点图');结果:四、仿真结果分析1.其系统第一个和第二个系统系统函数分别为由仿真结果可以看出图像与函数很吻合2. conv方法输出信号和filter方法输出的信号相同,两个方法都是正确的,只是在编程的时候要注意数组长度会有变换。
应用FFT实现信号频谱分析(杭电)
信号、系统与信号处理实验Ⅱ实验报告实验名称:应用FFT 实现信号频谱分析一、实验目的1、能够熟练掌握快速离散傅里叶变换FFT 的原理及应用FFT 进行频谱分析的基本方法。
2、对离散傅里叶变换的主要性质及 FFT 在数字信号处理中的重要作用有进一步的了解。
二、实验内容与要求(2)编写一个调用 FFT 函数的通用程序,可计算下列三种序列的离散频谱。
指数序列: v1(n) = 0.9^n*u(n);周期为 N 的余弦序列:v2(n) = cos(2*pi*n/N) ,且 0≤ n≤ N-1 复合函数序列:v3(n) = 0.9sin(2*pi*n/N) + 0.6sin(2*pi*n*3/N)(3)计算实指数序列 v1(n) 的 N点离散频谱 V1(k), 记录 N为不同的 2 的幂次方时的V1(k) 值,并与理论值 V1(e^jwk ) 进行分析比较。
(4)计算周期为 N 的余弦序列 v2(n) 的 N 点 FFT、2N 点 FFT 及(N+2) 点 FFT,记录结果并作为分析说明。
(5) 已知信号x(t) =0.15sin(2*pi*f1*t)+sin(2*pi*f2*t)-0.1sin(2*pi*f3*t), 其中f1 = 1Hz, f2 =2Hz,f3= 3Hz, 取样频率为 32Hz。
编程实现:① 32 点 FFT,画出其幅度谱。
②64 点 FFT,画出其幅度谱,比较两者间的差异,思考实际频率与离散频谱图中横坐标 k 的对应关系。
三、实验程序与结果指数序列: v1(n) = 0.9^n*u(n);v1(n) 的 N 点离散频谱 V1(k), 记录 N 为不同的 2的幂次方时的 V1(k) 值,并与理论值 V1(e^jwk ) 进行分析比较。
clear allN=16;N1=16;N2=32;N3=64;n=0:N-1;xn=0.9.^n;XK1=fft(xn,N1);magXK1=abs(XK1);phaXK1=angle(XK1);XK2=fft(xn,N2); magXK2=abs(XK2); phaXK2=angle(XK2);XK3=fft(xn,N3); magXK3=abs(XK3); phaXK3=angle(XK3);subplot(4,1,1);plot(n,xn);xlabel('n');ylabel('x(n)');title('x(n) '); subplot(4,1,2);k=0:length(magXK1)-1; stem(k,magXK1);xlabel('k');ylabel('|X(k)|');title('X(k) N1 = 16'); subplot(4,1,3);k=0:length(magXK2)-1; stem(k,magXK2);xlabel('k');ylabel('|X(k)|');title('X(k) N2 = 32'); subplot(4,1,4);k=0:length(magXK3)-1; stem(k,magXK3);xlabel('k');ylabel('|X(k)|');title('X(k) N3 = 64');x(n)1)n(0.5x0 5 10 15nX(k) N1 = 1610|)k( 5X|0 5 10 15kX(k) N2 = 3210|)k( 5X|0 5 10 15 20 25 30 35kX(k) N3 = 6410|)k(5X|10 20 30 40 50 60 70k周期为 N 的余弦序列: v2(n) =cos(2*pi*n/N) ,且 0≤ n≤ N-1;计算周期为 N 的余弦序列 v2(n) 的 N 点 FFT、 2N 点 FFT 及 (N+2) 点 FFT,记录结果并作为分析说明。
数字信号处理实现技术实验报告2
数字信号处理实现技术实验报告书2指导教师:周云学生姓名:实验组号:5实验时间:2016年4月8日一、实验名称:汇编语言-卷积运算 conv二、实验目的:1、学习卷积运算原理,学习卷积的汇编语言实现。
2、熟悉VDSP软件和MATALAB的使用。
三、实验内容:1、学习卷积的基本原理结构2、卷积程序的编写与改写3、数据源生成与测试(可产生正弦,方波,三角波等,进行自相关和互相关运算,记录卷积结果,点数和参数自拟)要求:数据源点数为:50+分组号*2波形类型:分组号%3:0:正弦,1:方波,2:三角波采样率,频率,占空比自定四、实验步骤步骤一使用VDSP打开工程文件conv.dpj选择运行这个project的session,编译及调试步骤二根据组号5,选择产生一个数据源点数为60的三角波利用MATLAB生成三角波和一个复杂波形观察波形,产生波形的数据文件步骤三将生成的数据文件写入VDSP程序中,再次对工程进行编译和调试利用plot功能观测输入、输出序列的波形五、实验结果(一)1、生成三角波和复杂波形源文件的MATLAB程序:clear all;close all;clc;M=60;N=60;x1=tripuls(-33:32,10);z8=conv(x1,x1);t=-2*pi/100:pi/1024:2*pi/100;x2=square(2*pi*30*t,50)x3=conv(x1,x2);x4=conv(x3,x3);figure(1)plot(x1);grid on;title('tripulse');figure(2)plot(z8);grid ontitle('convlution of tripulseanddtripulse');figure(3)plot(x3);grid ontitle('complicated wave');figure(4)plot(x4);grid ontitle('complicated wave andd complicated wave ');fid=fopen('C:\Users\jun\Desktop\code\conv\Conv\tripulse.dat','w'); fprintf(fid,'%15.10e\n',x1);fid=fopen('C:\Users\jun\Desktop\code\conv\Conv\complicatedwave.dat','w');fprintf(fid,'%15.10e\n',x3);z0=zeros(1,M+2*N-2);fid=fopen('C:\Users\jun\Desktop\code\conv\Conv\zeros.dat','w'); fprintf(fid,'%15.10e\n',z0);fclose('all');2、两个波形在MATLAB中的显示和他们的卷积(二)VDSP中程序部分#include "def21060.h"#define M 60#define N 60.section/dmdm_data;.varinputx[M]={0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.000 0000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0 000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00, 0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+ 00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000 e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.00000000 00e+00,2.0000000000e-01,4.0000000000e-01,6.0000000000e-01,8.0000000000e-01,1.0000000 000e+00,8.0000000000e-01,6.0000000000e-01,4.0000000000e-01,2.0000000000e-01,0.000000 0000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000 000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.00 00000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0. 0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00 ,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+ 00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00};.varinputy[M]={0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.000 0000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0 000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00, 0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+ 00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000 e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.00000000 00e+00,2.0000000000e-01,4.0000000000e-01,6.0000000000e-01,8.0000000000e-01,1.0000000 000e+00,8.0000000000e-01,6.0000000000e-01,4.0000000000e-01,2.0000000000e-01,0.000000 0000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000 000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.00 00000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0. 0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00 ,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+ 00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00};.section/pm pm_data;.varoutput[M+2*N-2]={0.0000000000e+00,……,0.0000000000e+00};.section/pm pm_rsti;jump start;.section/pm pm_code;start:i0=inputx;m0=1;i8=output+N-1;m8=1;lcntr=M, do label until lce;f0=dm(i0,m0);label: pm(i8,m8)=f0;conv:i10=output;m10=1;m1=-1;lcntr=M+N-1, do outer until lce;i1=inputy+N-1;i9=i10;f9=0;lcntr=N, do inner until lce;f0=dm(i1,m1), f5=pm(i9,m10);f12=f0*f5;inner: f9=f9+f12;outer: pm(i10,m10)=f9;end: idle;2、利用VDSP生成的图形六、实验分析本实验中生成的复杂波是有一个方波和三角波的卷积而成,自身卷积得到复杂波的卷积经过验证,实验最后,不论是用MATLAB还是用Visual DSP++软件进行画图比对,得到的输入、输出波形是基本一致的。
杭电_数字信号处理课程设计_实验2
实验2 利用快速离散傅里叶变换分析信号的频谱一、实验目的1、通过这一实验,能够熟练掌握快速离散傅里叶变换FFT的原理及其用FFT 进行频谱分析的基本方法。
2、在通过计算机上用软件实现FFT 及信号的频谱分析。
3、通过实验对离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用有进一步的了解。
二、实验要求及内容第一题代码:clear all;N=32;n=0:N-1;xn=sin(2*pi*n/32);subplot(2,1,1);plot(n,xn);ylabel('x(n)');title('x(n) N=32');XK=fft(xn,N);magXK=abs(XK); %幅频特性phaXK=angle(XK); %相频特性subplot(2,1,2);k=0:length(magXK)-1;stem(k,magXK,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('X(k) N=32');第二题代码:clear all;N=100;n=0:N-1;xn=0.9*sin(2*pi/N*n)+0.6*cos(2*pi/(N/3)*n); subplot(2,1,1);plot(n,xn);xlabel('n');ylabel('x(n)');title('x(n) N=32');XK=fft(xn,N);magXK=abs(XK); %幅频特性phaXK=angle(XK); %相频特性subplot(2,1,2);k=0:length(magXK)-1;stem(k,magXK,'.'); %信号幅频特性曲线xlabel('k');ylabel('|X(k)|');title('X(k) N=100');第三题代码:clear all;N=8;x=[ones(1,8),zeros(1,N-8)];n=0:N-1;X=dft(x,N);magX=abs(X);phaX=angle(X)*180/pi;k=(0:length(magX)'-1)*N/length(magX); subplot(2,2,1);stem(n,x);subplot(2,2,2);stem(k,magX,'.');axis([0,10,0,8]);ylabel('|X(k)| of N=8');N=16;x=[ones(1,8),zeros(1,N-8)];n=0:N-1;X=dft(x,N);magX=abs(X);phaX=angle(X)*180/pi;k=(0:length(magX)'-1)*N/length(magX);subplot(2,2,3);stem(n,x,'.');ylabel('x(n)');subplot(2,2,4);stem(k,magX,'.');axis([0,15,0,8]);ylabel('|X(k)| of N=16');%用到的函数:function[Xk]=dft(xn,N)n=[0:1:N-1];k=[0:1:N-1];WN=exp(-j*2*pi/N);nk=n'*k;WNnk=WN.^nk;Xk=xn*WNnk;End第四题代码:clear all;N3=120;x3=0:1:N3-1;%xn3=[1+cos(2*pi*100*x3)].*cos(2*pi*600*x3);xn3=cos(2*pi*600/3000*x3)+0.5*cos(2*pi*700/3000*x3)+0.5*cos(2*pi*500/3000*x3); subplot(2,2,1);plot(x3,xn3);title('xn3');XK3=fft(xn3,N3);XK3=abs(XK3);subplot(2,2,2);stem(0:length(XK3)-1,XK3,'.');title('XK3 N=120点DFT');N30=128;%xn30=[1+cos(2*pi*100*x30)].*cos(2*pi*600*x30);xn30=cos(2*pi*600/3000*x30)+0.5*cos(2*pi*700/3000*x30)+0.5*cos(2*pi*500/3000*x30); subplot(2,2,3);plot(x30,xn30);title('xn30');XK30=fft(xn30,2*N30);XK30=abs(XK30);subplot(2,2,4);stem(0:length(XK30)-1,XK30,'.');title('XK30 N=128点DFT');三、实验结果与分析:题目一结果与分析:从图像中可以看出,当0≤n≤N-1,N=32时,当且仅当K=1和K=31时,|X(k)|=16,其余点的|X(k)|=0,与笔算结果相同,符合题目要求。
数字信号处理课程设计
数字信号处理课程设计数字信号处理课程设计(综合实验)班级:电⼦信息⼯程1202X 姓名:X X学号:27指导教师:XXX设计时间:成绩:评语:实验⼀时域采样与频域采样定理的验证实验⼀、设计⽬的1. 时域采样理论与频域采样理论是数字信号处理中的重要理论。
要求掌握模拟信号采样前后频谱的变化,以及如何选择采样频率才能使采样后的信号不丢失信息;2. 要求掌握频率域采样会引起时域周期化的概念,以及频率域采样定理及其对频域采样点数选择的指导作⽤。
⼆、程序运⾏结果1.时域采样定理验证结果:2.频域采样定理验证结果:三、参数与结果分析1. 时域采样参数与结果分析:对模拟信号()ax t以T进⾏时域等间隔理想采样,形成的采样信号的频谱会以采样⾓频率Ωs(Ωs=2π/T)为周期进⾏周期延拓。
采样频率Ωs必须⼤于等于模拟信号最⾼频率的两倍以上,才能使采样信号的频谱不产⽣频谱混叠。
()ax t的最⾼截⽌频率为500HZ,⽽因为采样频率不同,得到的x1(n)、x2(n)、x3(n)的长度不同。
频谱分布也就不同。
x1(n)、x2(n)、x3(n)分别为采样频率为1000HZ、300HZ、200HZ时候的采样序列,⽽进⾏64点DFT之后通过DFT分析频谱后得实验图中的图,可见在采样频率⼤于等于1000时采样后的频谱⽆混叠,采样频率⼩于1000时频谱出现混叠且在Fs/2处最为严重。
2.频域采样参数与结果分析:对信号x(n)的频谱函数进⾏N点等间隔采样,进⾏N点IDFT[()NXk]得到的序列就是原序列x(n)以N 为周期进⾏周期延拓后的主值区序列。
对于给定的x(n)三⾓波序列其长度为27点则由频率域采样定理可知当进⾏32点采样后进应该⽆混叠⽽16点采样后进⾏IFFT得到的x(n)有混叠,由实验的图形可知频域采样定理的正确性。
四、思考题如果序列x(n)的长度为M,希望得到其频谱在[0, 2π]上的N点等间隔采样,当N实验⼆正余弦信号的谱分析⼀、设计⽬的1.⽤DFT实现对正余弦信号的谱分析;2.观察DFT长度和窗函数长度对频谱的影响;3.对DFT进⾏谱分析中的误差现象获得感性认识。
数字信号处理课程设计实验报告
华北电力大学实验报告实验环境MATLAB 7.1实验名称实验一:FFT的应用实验目的1、熟悉MATLAB在数字信号处理中的应用。
2、掌握利用FFT计算序列线性卷积的基本原理及编程实现。
3、掌握对连续信号进行采样的基本原理和方法,并利用FFT对信号进行频谱分析。
实验原理1.线性卷积和圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为的长度为L+M-1。
x(n)和h(n)的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以用圆周卷积来计算,必须选择;同时为了能使用基-2FFT完成卷积运算,要求。
采用补零的办法使x(n)实验原理和h(n)的长度均为N。
(2)计算x(n)和h(n)的N点FFT(3)组成乘积(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)3.分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。
为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。
这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。
重叠保留法:设x(n)的长度为,h(n)的长度为M。
我们把序列x(n)分成多段N点序列(n),每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。
计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。
数字信号处理课程设计实验报告
华北电力大学实验报告实验环境MATLAB 7.1实验名称实验一:FFT的应用实验目的1、熟悉MATLAB在数字信号处理中的应用。
2、掌握利用FFT计算序列线性卷积的基本原理及编程实现。
3、掌握对连续信号进行采样的基本原理和方法,并利用FFT对信号进行频谱分析。
实验原理1.线性卷积和圆周卷积设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为的长度为L+M-1。
x(n)和h(n)的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。
可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以用圆周卷积来计算,必须选择;同时为了能使用基-2FFT完成卷积运算,要求。
采用补零的办法使x(n)实验原理和h(n)的长度均为N。
(2)计算x(n)和h(n)的N点FFT(3)组成乘积(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)3.分段卷积我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。
为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。
这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。
重叠保留法:设x(n)的长度为,h(n)的长度为M。
我们把序列x(n)分成多段N点序列(n),每段与前一段重叠M-1个样本。
由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。
计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。
所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。
杭电计组实验2-超前进位加法器设计实验
杭州电子科技大学计算机学院
实验报告
实验项目:实验2-超前进位加法器设计实验
课程名称:计算机组成原理与系统结构课程设计
姓名:学号:同组姓名:学号:
实验位置(机号):
实验日期:指导教师:
#100;
A = 1011;
B = 1101;C0 = 0;
#100;
A = 1010;
B = 0010;C0 = 1;
#100;
A = 0111;
B = 1000;C0= 0;
#100;
A = 0011;
B = 0100;C0 = 1;
#100;
A = 1001;
B = 0001;C0 = 0;
#100;
end
Endmodule
RTL图
二、结果
思考题:
(1)综合得到的电路图,它和想要设计的电路在引脚的输入输出方面是完全相同的,但是相比较内部的RTL图,实验实现的结果是相同的,但是我编写的实验代码并没有调用实验一的全加器设计。
(2)尝试编写8位超前进位加法器设计实验
module add_8 ( input [7:0]a, input [7:0]b, input cin, output [7:0] s, output co );
wire [7:0]c_tmp;
wire [7:0]g;
wire [7:0]p;。
杭电数字信号处理实验报告9
信号、系统与信号处理实验Ⅱ实验报告姓名:学号:班级:上课时间:2017.12.29实验名称:用窗口法设计FIR 数字滤波器一、 实验目的了解一个实际滤波器的设计过程,加深掌握窗口法设计FIR 数字滤波器的原理和窗函数对数字滤波器性能的影响二、 实验内容与要求(1)编写用改进的升余弦窗函数设计FIR 先行相应低通数字滤波器的程序,已知 ωc=0.5π,N=21,这里ωc 为低通滤波器的截止频率,N 为滤波器的长度,滤波器的阶数位N-1.(2)调试运行程序,要求在屏幕上显示出单位冲激相应h (n )的数值,画出其幅度响应|H(ej ω)|及20log|H(ej ω)|的曲线。
(3)画出窗函数W(n)及其频谱W(ej ω)的幅度|W(ej ω)|和20log|W(ej ω)|的曲线。
思考:(1)如何根据20log|H(ej ω)|曲线得到阻带最小衰减?(2)如何根据20log|W(ej ω)|曲线得到旁瓣峰值幅度和主瓣宽度?。
三、 实验程序与结果(1) N=21; w=0.5*pi;b=fir1(N-1,w/pi); freqz(b,1,512)00.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)P h a s e (d e g r e e s )00.10.20.30.40.50.60.70.80.91Normalized Frequency (⨯π rad/sample)M a g n i t u d e (d B )(2)close all N=21; w=0.5*pi;b=fir1(N-1,w/pi); r=(N-1)/2; n=0:N-1;hdn=sin(w*(n-r))/pi./(n-r); if rem(N,2)~=0; hdn(r+1)=w/pi; endwn=hamming(N); h=hdn.*wn'; subplot(3,1,1) stem(n,h); subplot(3,1,2) H=fft(h,512); w=2*[0:511]/512; plot(w,abs(H)); ylabel('|H(e^jw)|'); xlabel('w/pi'); subplot(3,1,3)plot(w,20*log10(abs(H))); ylabel('20lg|H(e^jw)|'); xlabel('w/pi');0246810121416182000.20.40.60.81 1.2 1.4 1.6 1.8212|H (e j w )|w/pi00.20.40.60.81 1.2 1.4 1.6 1.82-100010020l g |H (e j w )|w/pi(3)close all N=21; w=0.5*pi;b=fir1(N-1,w/pi); r=(N-1)/2; n=0:N-1;hdn=sin(w*(n-r))/pi./(n-r); if rem(N,2)~=0; hdn(r+1)=w/pi; endwn=hamming(N); subplot(3,1,1) stem(n,wn); h=hdn.*wn'; Wn=fft(wn,512); w=2*[0:511]/512; subplot(3,1,2) plot(w,abs(Wn)); ylabel('|W(e^jw)|'); xlabel('w/pi'); subplot(3,1,3)plot(w,20*log10(abs(Wn))); ylabel('20lg|W(e^jw)|'); xlabel('w/pi');0246810121416182000.20.40.60.81 1.2 1.4 1.6 1.821020|W (e j w )|w/pi00.20.40.60.81 1.2 1.4 1.6 1.82-100010020l g |W (e j w )|w/pi四、仿真结果分析(1)如何根据20lg| H(e^jw)|曲线得到最小阻带衰减?由于最小阻带衰减,所以在观察20lg| H(e^jw)|曲线时,w=0和w=10所对应的20lg|H(e^jw)|值只差就是最小阻带衰减。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 利用快速离散傅里叶变换分析信号的频谱
一、实验目的
1、通过这一实验,能够熟练掌握快速离散傅里叶变换FFT的原理及其用FFT 进行频谱分析的基本方法。
2、在通过计算机上用软件实现FFT 及信号的频谱分析。
3、通过实验对离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用有进一步的了解。
二、实验要求及内容
第一题代码:
clear all;
N=32;
n=0:N-1;
xn=sin(2*pi*n/32);
subplot(2,1,1);
plot(n,xn);
ylabel('x(n)');
title('x(n) N=32');
XK=fft(xn,N);
magXK=abs(XK); %幅频特性
phaXK=angle(XK); %相频特性
subplot(2,1,2);
k=0:length(magXK)-1;
stem(k,magXK,'.'); %信号幅频特性曲线xlabel('k');
ylabel('|X(k)|');
title('X(k) N=32');
第二题代码:
clear all;
N=100;
n=0:N-1;
xn=0.9*sin(2*pi/N*n)+0.6*cos(2*pi/(N/3)*n); subplot(2,1,1);
plot(n,xn);
xlabel('n');
ylabel('x(n)');
title('x(n) N=32');
XK=fft(xn,N);
magXK=abs(XK); %幅频特性
phaXK=angle(XK); %相频特性
subplot(2,1,2);
k=0:length(magXK)-1;
stem(k,magXK,'.'); %信号幅频特性曲线xlabel('k');
ylabel('|X(k)|');
title('X(k) N=100');
第三题代码:
clear all;
N=8;
x=[ones(1,8),zeros(1,N-8)];
n=0:N-1;
X=dft(x,N);
magX=abs(X);
phaX=angle(X)*180/pi;
k=(0:length(magX)'-1)*N/length(magX); subplot(2,2,1);
stem(n,x);
subplot(2,2,2);
stem(k,magX,'.');
axis([0,10,0,8]);
ylabel('|X(k)| of N=8');
N=16;
x=[ones(1,8),zeros(1,N-8)];
n=0:N-1;
X=dft(x,N);
magX=abs(X);
phaX=angle(X)*180/pi;
k=(0:length(magX)'-1)*N/length(magX);
subplot(2,2,3);
stem(n,x,'.');
ylabel('x(n)');
subplot(2,2,4);
stem(k,magX,'.');
axis([0,15,0,8]);
ylabel('|X(k)| of N=16');
%用到的函数:
function[Xk]=dft(xn,N)
n=[0:1:N-1];
k=[0:1:N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^nk;
Xk=xn*WNnk;
End
第四题代码:
clear all;
N3=120;
x3=0:1:N3-1;
%xn3=[1+cos(2*pi*100*x3)].*cos(2*pi*600*x3);
xn3=cos(2*pi*600/3000*x3)+0.5*cos(2*pi*700/3000*x3)+0.5*cos(2*pi*500/3000*x3); subplot(2,2,1);
plot(x3,xn3);
title('xn3');
XK3=fft(xn3,N3);
XK3=abs(XK3);
subplot(2,2,2);
stem(0:length(XK3)-1,XK3,'.');
title('XK3 N=120点DFT');
N30=128;
%xn30=[1+cos(2*pi*100*x30)].*cos(2*pi*600*x30);
xn30=cos(2*pi*600/3000*x30)+0.5*cos(2*pi*700/3000*x30)+0.5*cos(2*pi*500/3000*x30); subplot(2,2,3);
plot(x30,xn30);
title('xn30');
XK30=fft(xn30,2*N30);
XK30=abs(XK30);
subplot(2,2,4);
stem(0:length(XK30)-1,XK30,'.');
title('XK30 N=128点DFT');
三、实验结果与分析:
题目一结果与分析:
从图像中可以看出,当0≤n≤N-1,N=32时,当且仅当K=1和K=31时,|X(k)|=16,其余点的|X(k)|=0,与笔算结果相同,符合题目要求。
题目二结果与分析:
该实验结果与笔算结果相同,符合题目要求。
题目三结果与分析:
N 点DFT的幅频曲线图中,0~7这8个点,只有当k=0时|X(k)|不为零,而2N点DFT的幅频曲线则不一样。
这是因为,在同一个周期内,2N点的DFT比N点DFT要多取一些点,因此原本N点DFT没有显示的点将在2N点DFT中显示出来。
而且,我们可以知道,取的点越多,幅频曲线图将会越精确。
该实验结果与笔算结果相同,符合题目要求
题目四结果与分析:
该实验结果经过笔算验证,符合题目要求。
思考题分析:
A.混叠现象:对于带限连续信号,只要提高抽样频率使之满足时域抽样定理;对于非带限信号,可以根据实际情况对其进行低通滤波,使之成为带限信号。
工程中的信号一般都不是带限信号,连续信号在抽样前通常都进过一个低通滤波器(即抗混叠滤波器)进行低通滤波,以减少混叠误差,提高频谱分析精度。
B.泄漏现象:在选择矩形窗口的长度时,适当增加窗的长度,可以提高频谱分辨率,但是不能减小旁瓣引起的频谱泄露,因此可以选择旁瓣幅度很小甚至为零的非矩形窗对信号进行加窗处理,就可以降低频谱泄露。
C.栅栏现象:改善栅栏现象最常用的方法是在离散序列之后补零,得到一个比原有序列更长的序列,这样就可以增加频谱图中的很多细节,降低栅栏现象。
四、实验总结:
略。