信号分析与处理实验(MATLAB)剖析
信号分析与处理实验报告

华北电力大学实验报告||实验名称FFT的软件实现实验(Matlab)IIR数字滤波器的设计课程名称信号分析与处理||专业班级:电气化1308 学生姓名:袁拉麻加学号: 2 成绩:指导教师:杨光实验日期: 2015-12-17快速傅里叶变换实验一、实验目的及要求通过编写程序,深入理解快速傅里叶变换算法(FFT)的含义,完成FFT和IFFT算法的软件实现。
二、实验内容利用时间抽取算法,编写基2点的快速傅立叶变换(FFT)程序;并在FFT程序基础上编写快速傅里叶反变换(IFFT)的程序。
三:实验要求1、FFT和IFFT子程序相对独立、具有一般性,并加详细注释;2、验证例6-4,并能得到正确结果。
3、理解应用离散傅里叶变换(DFT)分析连续时间信号频谱的数学物理基础。
四、实验原理:a.算法原理1、程序输入序列的元素数目必须为2的整数次幂,即N=2M,整个运算需要M 级蝶形运算;2、输入序列应该按二进制的码位倒置排列,输出序列按自然序列排列;3、每个蝶形运算的输出数据军官占用其他输入数据的存储单元,实现“即位运算”;4、每一级包括N/2个基本蝶形运算,共有M*N/2个基本蝶形运算;5、第L级中有N/2L个群,群与群的间隔为2L。
6、处于同一级的各个群的系数W分布相同,第L级的群中有2L-1个系数;7、处于第L级的群的系数是(p=1,2,3,…….,2L-1)而对于第L级的蝶形运算,两个输入数据的间隔为2L-1。
b.码位倒置程序流程图开始检测A序列长度nk=0j=1x1(j)=bitget(k,j);j=j+1Yj<m?Nx1=num2str(x1);y(k+1)=bin2dec(x1);clear x1k=k+1c.蝶形运算程序流程图五、程序代码与实验结果a.FFT程序:%%clear all;close all;clc;%输入数据%A=input('输入x(n)序列','s');A=str2num(A);% A=[1,2,-1,4]; %测试数据%%%%校验序列,%n=length(A);m=log2(n);if (fix(m)~=m)disp('输入序列长度错误,请重新输入!');A=input('输入x(n)序列','s');A=str2num(A);elsedisp('输入正确,请运行下一步')end%%%码位倒置%for k=0:n-1for j=1:m %取M位的二进制数%x1(j)=bitget(k,j); %倒取出二进制数%endx1=num2str(x1); %将数字序列转化为字符串%y(k+1)=bin2dec(x1); %二进制序列转化为十进制数%clear x1endfor k=1:nB(k)=A(y(k)+1); %时间抽取序列%endclear A%%%计算%for L=1:m %分解为M级进行运算%LE=2^L; %第L级群间隔为2^L%LE1=2^(L-1); %第L级中共有2^(L-1)个Wn乘数,进行运算蝶运算的两数序号相隔LE1%W=1;W1=exp(-1i*pi/LE1);for R=1:LE1 %针对第R个Wn系数进行一轮蝶运算,共进行LE1次%for P=R:LE:n %每个蝶的大小为LE% Q=P+LE1;T=B(Q)*W;B(Q)=B(P)-T;B(P)=B(P)+T;endW=W*W1;endendB %输出X(k)%%%验证结果:例6-4b.IFFT程序:%%clear all;close all;clc;%输入数据%A=input('输入X(k)序列','s');A=str2num(A);% A=[6,2+2i,-6,2-2i]; %测试数据%%%%校验序列,%n=length(A);m=log2(n);if (fix(m)~=m)disp('输入序列长度错误,请重新输入!');A=input('输入x(n)序列','s');A=str2num(A);elsedisp('输入正确,请运行下一步')end%%%码位倒置%for k=0:n-1for j=1:m %取M位的二进制数%x1(j)=bitget(k,j); %倒取出二进制数%endx1=num2str(x1); %将数字序列转化为字符串%y(k+1)=bin2dec(x1); %二进制序列转化为十进制数%clear x1endfor k=1:nB(k)=A(y(k)+1); %时间抽取序列%endclear A%%%计算%for L=1:m %分解为M级进行运算%LE=2^L; %第L级群间隔为2^L%LE1=2^(L-1); %第L级中共有2^(L-1)个Wn乘数,进行运算蝶运算的两数序号相隔LE1%W=1;W1=exp(-1i*pi/LE1);for R=1:LE1 %针对第R个Wn系数进行一轮蝶运算,共进行LE1次%for P=R:LE:n %每个蝶的大小为LE%Q=P+LE1;T=B(Q)*W;B(Q)=B(P)-T;B(P)=B(P)+T;endW=W*W1;endendB=conj(B); %取共轭%B=B/n %输出x(n)%验证结果:六、实验心得与结论本次实验借助于Matlab软件,我避开了用C平台进行复杂的复数运算,在一定程度上简化了程序,并添加了简单的检错代码,码位倒置我通过查阅资料,使用了一些函数,涉及到十-二进制转换,数字-文本转换,二-文本转换,相对较复杂,蝶运算我参考了书上了流程图,做些许改动就能直接实现。
matlab 实验四 信号的谱分析

实验四 信号的谱分析一、实验目的:1、 掌握DTFT 原理及其程序实现,学习用DTFT 对信号进行谱分析。
2、 掌握DFT 原理及其程序实现,学习用DFT 对信号进行谱分析。
3、 熟悉FFT 算法原理和掌握fft 子程序的应用。
4、 掌握DFT 的性质。
二、实验内容:1、 对于序列x(n)=[3,1,7,2,4],在-π ~ π内取64个频点,利用矩阵操作求其DTFT ,画出它的幅频特性和相频特性。
并把x(n)的位置零点右移一位,再求DTFT ,画出其幅频特性和相频特性,讨论移位对于DTFT 的影响。
2、 利用矩阵操作求1题中序列的DFT ,并画图。
3、 利用Matlab 自带的fft 函数求1题中序列的DFT ,并与1题中求出的DTFT 相比较。
4、 已知序列x(n)=[2,3,4,5]位于主值区间,求其循环左移一位的结果,画出循环移位的中间过程。
提示:左右各拓展一个周期,nx=[-4:7];采用stem 函数画图。
5、 已知序列x(n)=[1,2,3,4,5,6]位于主值区间,循环长度为8,确定并画出循环折叠y(n)=x((-n)8);如果循环长度为6,确定并画出循环折叠y(n)=x((-n)6)。
6、 已知序列x(n)=[2,1,5,3]位于主值区间,h(n)=nR 4(n),计算循环卷积1()()()c y n h n x n =⑥,2()()()c y n h n x n =⑩和线性卷积()()*()y n h n x n =,画出1()c y n 、2()c y n 和()y n 的波形图,观察循环卷积和线性卷积的关系。
三、实验报告要求:1.实验原理:序列x (n)的频谱定义为:nj n en x n x F j X ωω-∞-∞=∑==)())(()( πωπ≤≤-;也称为它的离散时间傅立叶变换。
可以认为,序列中的每一个样本x(n)对频谱产生的贡献为n j e n x ω-)( ,把整个序列中所有样本的频谱分量按向量(即复数)叠加起来,就得到序列的频谱X(j ω)。
毕业设计(论文)-信号与系统中的典型问题的matlab分析[管理资料]
![毕业设计(论文)-信号与系统中的典型问题的matlab分析[管理资料]](https://img.taocdn.com/s3/m/02bc8d067c1cfad6185fa741.png)
2011届学士学位论文信号与系统中典型问题的MATLAB分析系别: 电子信息系专业: 电子信息科学与技术学号:姓名:指导教师:指导教师职称: 教授2011年4月30日信号与系统中典型问题的MATLAB分析摘要从信号与系统课程的特点出发,结合MATLAB软件优势,针对实例进行分析。
主要从连续信号、离散信号两方面应用MATLAB软件进行仿真和分析。
分别对连续信号和离散信号中线性时不变(LTI)系统信号分析,应用MATLAB软件进行仿真和分析。
对连续时间信号和离散时间信号的线性时间不变(LTI)系统的变换域,卷积和采样定理进行了模拟。
实例中运用了连续模块库、离散模块库等。
通过实例表明了MATLAB软件的便捷性,可以提高工作效率。
实践证明,采用MATLAB软件进行辅助分析可以我们对知识点的理解更深入更透彻。
关键词MATLAB仿真;时域分析;频域分析;卷积;序列卷和;冲激响应;阶跃响应;The Applied Research of Signal ProcessingBased on MATLABAbstract we give an overview of the examples from the characteristics of signal and system course, combining with MATLAB software advantages. The main idea is that MATLAB simulation and analysis software were applied in the continuous-time signals and discrete-time signals. In continuous-time signals and discrete-time signals the response signal of linear time invariant(LTI) system and its analysis of the transform domain and convolution and Sampling theorem were simulated. The examples used the continuous and discrete blocks library and communication toolbox, etc. Some examples show that processing signals can bring us great convenience and high efficiency. Practice has proved, using MATLAB software were aided analysis on knowledge points we can understand deeper and more thoroughly.Key-words MATLAB; the Time-domain Analysis;Frequency domain analysis;convolution ;Sequence convolution ;Impulse response ;Order step-response目录1引言 (1)2 MATLAB软件介绍 (2)3 MATLAB对连续时间信号的分析 (3)MATLAB仿真线性时不变(LTI)系统响应的信号表示 (3)MATLAB对连续信号变换域的分析 (4)连续时间信号的卷积计算及MATLAB的实现 (5)连续时间系统抽样定理的验证 (6)84 MATLAB对离散时间信号的分析 (10)离散系统的单位样值响应 (11)离散系统的变换域分析 (12)离散时间信号的卷积计算 (13)结论 (15)参考文献 (16)致谢 (17)附录一 (18)附录二 (19)附录三 (21)1 引言随着软件的发展,为仿真实验提供了另一思路,MATLAB软件具有强大的数值计算和矩阵处理功能。
信号分析与处理MATLAB仿真实验报告

信号分析与处理MATLAB仿真实验报告2009.12.25院系:电气工程学院专业: 自动化班级:姓名:学号:实验7 离散时间序列的卷积实验目的:学会用MATLAB实现对离散时间序列的卷积,掌握利用h(n) 与输入x(n)卷积来求系统零状态响应的方法。
实验要求:使用MATLAB中求卷积函数的conv(),并对结果分析总结。
实验内容:LTI系统的单位脉冲响应为h(n)=(0.9)n ε(n),输入序列为x(n)=ε(n)- ε(n-10),求系统的输出y(n)。
程序function [y,ny]=conv_m(x,nx,h,nh);y=conv(x(5:45),h);ny=nh;y=y(1:41);subplot(3,1,1);stem(nx,x,'filled');axis([-4,40,0,1]);title('x[n]');subplot(3,1,2);stem(nh,h,'filled');axis([-4,40,0,1]);title('h[n]');subplot(3,1,3);stem(ny,y,'filled');axis([-4,40,0,8]);title('y[n]');实验结果:结果分析:改变参数以后的程序:function [y,ny]=conv_m(x,nx,h,nh);y=conv(x(5:45),h);ny=nh;y=y(1:41);subplot(3,1,1);stem(nx,x,'filled');axis([-4,40,0,1]);title('x[n]'); subplot(3,1,2);stem(nh,h,'filled');axis([-4,40,0,1]);title('h[n]'); subplot(3,1,3);stem(ny,y,'filled');axis([-4,40,0,2]);title('y[n]');输出结果:实验8 连续时间信号的卷积实验目的:学会用MATLAB实现对连续时间信号的卷积,掌握利用卷积的方法求系统零状态响应,并与离散系统比较。
信号分析与处理实验MATLAB

3、系统分析与滤波
实验目的:掌握在已知系统函数或微分(差分)方程时, 分析时域响应、频率响应、系统稳定性的方法。
实验指导:实验教材第二篇之实验一、实验二 实验内容:
(1) 连续、离散系统的时域响应与零极点分析; (2) 连续系统的频率响应特性(幅度、相位); (3) 离散系统的频率响应特性(幅度、相位); (4) 教材实验内容(P58)之4、5题(filter滤波)。
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); %确定butterworth 的最小介数N和频率参数Wn
[z,p,k]=buttap(N); 参数
%设计模拟低通原型的零极点增益
[bp,ap]=zp2tf(z,p,k); %将零极点增益转换成分子分母参 数
[bs,as]=lp2lp(bp,ap,Wn*pi*Fs);%将低通原型转换为模拟 低通
2. 创建Chebyshev I型滤波器原型:[z,p,k]=cheblap(N,rp); 3. 表达形式从零极点增益形式转换成状态方程形式:
[A, B, C, D]=zp2ss(z,p,k); 4. 把模拟低通滤波器原型转换成模拟低通滤波器:
[At, Bt, Ct, Dt]=lp2lp(A, B, C, D, Wn); 5. 表达形式从状态方程形式转换成传递函数形式:
(3) 运用最小阶数N产生模拟滤波器原型,模拟低通滤波器的创建 函数有:buttap, cheb1ap, cheb2ap, ellipap等;
(4) 运用固有频率Wn把模拟低通滤波器原型转换成模拟低通、高 通、带通、带阻滤波器,可分别用函数lp2lp、lp2hp, lp2bp, lp2bs;
(5) 运用冲激响应不变法或双线性变换法把模拟滤波器转换成数字 滤波器,分别用函数impinvar和bilinear实现。
matlab信号分析实验报告

matlab信号分析实验报告实验目的:通过使用MATLAB对信号进行分析,掌握信号分析的基本方法和技巧,了解信号的基本特性和频谱分析方法。
实验设备和软件:MATLAB软件、个人电脑实验原理:信号分析是指对信号的各种特性进行研究和分析的过程。
在信号分析中,最基本的任务是确定信号的频谱特性,即信号中包含的各种频率成分及其强度。
常用的信号分析方法有时域分析和频域分析。
实验步骤:1. 打开MATLAB软件,新建一个脚本文件。
2. 生成一个基本信号,例如正弦信号或脉冲信号。
可以使用MATLAB中的函数例如`sin`或`square`来生成。
3. 绘制信号的时域波形图。
使用`plot`函数可以将信号的时间序列绘制出来。
4. 对信号进行频谱分析。
使用`fft`函数可以对信号进行傅里叶变换,得到信号的频谱。
再使用`abs`函数计算频谱的幅度。
5. 绘制信号的频谱图。
使用`plot`函数可以将信号的频谱绘制出来。
6. 对不同的信号进行分析比较。
例如比较不同频率、不同幅度的正弦信号的频谱。
7. 对实际采集到的信号进行分析。
可以将实际采集到的信号导入到MATLAB中,并进行相应的分析。
实验结果:通过对信号进行时域分析和频域分析,可以得到信号的波形和频谱。
通过对不同信号的分析比较,可以研究信号的特性。
通过对实际采集到的信号进行处理和分析,可以了解实际信号中包含的各种频率成分及其强度。
实验结论:MATLAB是一个强大的信号分析工具,通过使用MATLAB进行信号分析,可以更好地理解信号的特性和频谱分布。
通过对实际信号的处理和分析,可以了解实际信号中包含的各种频率成分及其强度,为进一步的信号处理和特征提取提供参考。
matlab信号分析实验报告

matlab信号分析实验报告Matlab信号分析实验报告引言:信号分析是一门重要的学科,它涉及到信号的获取、处理和解释。
在现代科学和工程领域中,信号分析被广泛应用于各种领域,如通信、图像处理、音频处理等。
本实验报告将介绍在Matlab环境下进行信号分析的实验过程和结果。
1. 实验目的本实验旨在通过Matlab软件对不同类型的信号进行分析,包括时域分析、频域分析和滤波处理。
通过实验,我们可以深入了解信号的特性和分析方法,并掌握Matlab在信号分析中的应用。
2. 实验材料和方法本实验使用了Matlab软件和一些信号处理工具箱。
实验中使用的信号包括正弦信号、方波信号和噪声信号。
我们首先通过Matlab生成这些信号,并对其进行采样和量化。
然后,我们进行时域分析,包括信号的时域波形绘制和功率谱密度估计。
接下来,我们进行频域分析,包括信号的傅里叶变换和频谱绘制。
最后,我们对信号进行滤波处理,包括低通滤波和高通滤波。
3. 实验结果和讨论在实验中,我们首先生成了一个正弦信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的周期性和振幅。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对正弦信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
接下来,我们生成了一个方波信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的周期性和方波特征。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对方波信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
最后,我们生成了一个噪声信号,并对其进行采样和量化。
通过时域分析,我们可以观察到信号的随机性和波动性。
通过频域分析,我们可以观察到信号的频谱分布。
我们还对噪声信号进行了低通滤波和高通滤波,观察到滤波后信号的变化。
通过以上实验结果,我们可以得出以下结论:- 时域分析可以帮助我们观察信号的波形和特征。
- 频域分析可以帮助我们观察信号的频谱分布和频率成分。
信号分析与处理实验报告(基于matlab)

fr=real(f);%描述函数实部
fi=imag(f);%描述函数虚部
fa=abs(f);%描述函数幅度
fg=angle(f);%描述函数相位
subplot(2,2,1)%将当前窗口分成2行2列个子窗口,并在第1个子窗口绘图
plot(t,fr)
title('实部')
ty=t0:dt:(t0+(t3-1)*dt);%确定卷积结果的非零样值的时间向量
subplot(3,1,1)
plot(t1,f1)%绘制信号f1(t)的时域波形
title('f1')
xlabel('t1')
axis([-0.2,10.2,-0.2,1])
gridon
subplot(3,1,2)
plot(t2,f2)%绘制信号f2(t)的时域波形
1、将方波信号展开成三角形式Fourier级数并分别采用频域矩形窗和Hanning窗加权
方波展开的三角式傅立叶级数为:
采用频域矩形窗加权,则展开式变为:
采用Hanning窗加权,则展开式变为:
程序代码如下:
clearall
closeall
clc
t1=-2:0.01:2;
t2=-2:0.01:2;
K=30
xlabel('t')
axis([-0.5,20.5,-0.8,1.2])
gridon
subplot(2,2,2)%将当前窗口分成2行2列个子窗口,并在第2个子窗口绘图
plot(t,fi)
title('虚部')
xlabel('t')
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[At, Bt, Ct, Dt]=lp2lp(A, B, C, D, Wn); 5. 表达形式从状态方程形式转换成传递函数形式:
[num1 ,den 1]=ss2tf(At,Bt,Ct,Dt); 6. 采用冲激响应不变法将模拟滤波器转换成数字滤波器:
基于MATLAB的
信号分析与处理实验
Matlab程序举例1:产生时域信号
t=0:0.01:1;
x1=0.1*exp(-2*t);
%指数信号
x2=2*cos(2*pi*4*t); %余弦信号
x3=[ones(1,10) zeros(1,90) ones(1,10) zeros(1,90)];
%矩形信号
5、数字滤波器的设计与滤波
实验目的:掌握用Matlab设计IIR与FIR数字滤波器的 方法,及实现对信号的滤波。
实验指导:实验教材第二篇之实验三、实验四 实验内容:
(1) 各种IIR数字滤波器的设计(直接法、原型变换法); (2) 窗口法和频率抽样法设计FIR数字滤波器; (3) 用设计结果和filter函数实现信号(mtlb)滤波; (4) 教材实验内容(P64之2、P72之5题) 。
用卷积定理 X1=fft(x1,32); X2=fft(x2,32); Y=X1.*X2; y2=real(ifft(Y)); subplot(2,1,1); stem(y1); subplot(2,1,2); stem(y2);
实验安排
1、信号的产生与运算; 2、连续与离散信号的频谱分析; 3、连续与离散系统分析、滤波; 4、信号处理程序设计;(设计性)
(3) 运用最小阶数N产生模拟滤波器原型,模拟低通滤波器的创建 函数有:buttap, cheb1ap, cheb2ap, ellipap等;
(4) 运用固有频率Wn把模拟低通滤波器原型转换成模拟低通、高 通、带通、带阻滤波器,可分别用函数lp2lp、lp2hp, lp2bp, lp2bs;
(5) 运用冲激响应不变法或双线性变换法把模拟滤波器转换成数字 滤波器,分别用函数impinvar和bilinear实现。
2、信号的频谱分析
实验目的:掌握用DFT分析离散与连续时间信号频谱, 以及窗函数的波形与频谱特点。
实验指导:实验教材第一篇之实验三、实验四、实验五 实验内容:
(1) 离散信号的DFT(FFT)变换与频谱图(P27); (2) 分析5种窗函数的波形图与频谱图(不同窗宽); (3) 连续时间信号的频谱分析(P33); (4) 教材实验内容(P34)之4题。
附:用冲激响应不变法、双线性变换法
设计IIR数字滤波器的具体步骤
(1) 按一定规则将给出的数字滤波器的技术指标转换成模拟低通滤 波器的技术指标;
(2) 根据转换后的技术指标使用滤波器阶数选择函数,确定最小阶 数N和固有频率Wn,根据选用的模拟低通滤波器的类型可分别 用函数:buttord, cheb1ord, cheb2ord, ellipord等;
subplot(3,1,1); plot(x1); title(‘指数信号’);
subplot(3,1,2); plot(x2); title(‘余弦信号’);
subplot(3,1,3); plot(x3); title(‘矩形信号’);
Matlab程序举例2:计算卷积
直接计算 x1=[ones(1,5) zeros(1,27) ]; x2=[ones(1,10) zeros(1,22) ]; y1=conv(x1,x2);
6、wav音频信号的读写与处理
实验目的:掌握声音信号读写(wavread、wavwrite)、 去噪滤波、限带滤波及变采样。
实验指导:实验教材第三篇之实验五、实验七 实验内容:
(1) 通过help学习wavread、wavwrite的使用; (2) 实验七的实验内容1、2、3(P110); (3) 教材实验内,存为wav文件)。
例:Chebyshev I型数字滤波器设计
通带截止频率wp,阻带截止频率ws, 通带最大衰减rp,阻带最小衰减rs. 假设各参数: wp=30*2 *pi;
ws=40*2* pi; Fs=100; rp=0.3; rs=80;
例1:Chebyshev I型数字滤波器设计
1. 选择阶数: [N, Wn]=cheb1ord(wp, ws, rp, rs, 's'); 2. 创建Chebyshev I型滤波器原型:[z,p,k]=cheb1ap(N,rp); 3. 表达形式从零极点增益形式转换成状态方程形式:
4、信号处理程序设计
实验目的:掌握用matlab基本语句实现信号处理的方 法,以及自定义函数的编制与调用。
实验指导:实验教材附录二、《数字信号处理教程》 实验内容:
(1) 根据定义公式编写程序实现序列卷积、相关运算; (2) 生成与DFT、fftshift同功能的自定义函数; (3) 由表达式生成5种窗信号,用自定义函数分析频谱; (4) 自己编程实现FFT(选做,参考教材P191)。
3、系统分析与滤波
实验目的:掌握在已知系统函数或微分(差分)方程时, 分析时域响应、频率响应、系统稳定性的方法。
实验指导:实验教材第二篇之实验一、实验二 实验内容:
(1) 连续、离散系统的时域响应与零极点分析; (2) 连续系统的频率响应特性(幅度、相位); (3) 离散系统的频率响应特性(幅度、相位); (4) 教材实验内容(P58)之4、5题(filter滤波)。
(卷积、相关、窗函数、DFT、FFT*) 5、数字滤波器的设计与滤波; 6、wav音频信号的读写与处理。
1、信号的产生与运算
实验目的:掌握用Matlab产生基本信号、绘制波形、实 现基本运算。
实验指导:实验教材第一篇之实验一 实验内容:
(1) 常用连续信号的产生与绘图; (2) 常用离散信号的产生与绘图; (3) 离散信号的基本运算(含卷积、相关); (4) 教材实验内容(P12)之4、5题。(交程序及结果)