数字信号处理matlab相关实验
数字信号处理
- 复习
- 实验1
- matlab相关语法
- matlab如何绘制幅频特性曲线?
- 混叠与泄露现象
- 实验2
- matlab相关语法
- FFT
- 什么是循环卷积
- matlab如何直接时域线性卷积和FFT求线性卷积,圆周卷积
- ——————————————————————————
- 实验一
- 实验二
复习
实验1
matlab相关语法
figure函数:用于创建数据窗口
subplot函数:h = subplot(m,n,p)figure划分为m×n块,在第p块创建坐标系,并返回它的句柄
stem函数用于显示茎秆图
abs(x)函数是对数组元素进行绝对值处理,或者求复数的幅值
angle函数:求复数相角
matlab如何绘制幅频特性曲线?
幅频:
专门用于求离散系统频响特性的函数freqz(),调用freqz()的格式有以下几种:
(1)[H,w]=freqz(B,A,N); %N默认值为512
(2)[H,w]=freqz(B,A,N,‘whole’);
(3)[H,w]=freqz(B,A,[自定义区间]);
(1)式调用默认区间 0:pi
(2)式调用主值区间 -pi:pi
(3)式自定义区间,如[0:2pi/n:2pi]
最后利用abs()和angle()函数及plot()函数,即可绘制出系统在频率区间的频响曲线。,
混叠与泄露现象
混叠是由于对连续信号x(t)的采样不满足采样定理,即fs<2fh,使频谱产生失真
什么是泄露?
信号将被截断为帧,倘若信号截断的长度不为原始正弦信号周期的整数倍,那么,截断后的信号则不为周期信号。由于信号的非周期截断,导致频谱在整个频带内发生了拖尾现象。这是非常严重的误差,称为泄漏,是数字信号处理所遭遇的最严重误差。
实验2
matlab相关语法
fft函数:对于时间离散序列x,y=fft(x,N),N是序列x参与fft运算的点的个数,返回序列y的长度也为N
tic和toc函数:tic函数会记录起始时刻,toc函数会自动计算时间差,自动输出
unwrap函数:一般和angle配合使用
ph0=angle(s)*180/pi=[10 150 -90]
ph1=unwrap(angle(s))*180/pi=[10 150 270]
nextpow2函数:
2^nextpow2(320)=512
2^nextpow2(128)=128
FFT
FFT从入门到使用
什么是循环卷积
https://baike.baidu.com/item/%E5%BE%AA%E7%8E%AF%E5%8D%B7%E7%A7%AF/16600419#1
matlab如何直接时域线性卷积和FFT求线性卷积,圆周卷积
matlab直接求线性卷积和FFT求线性卷积
圆周卷积matlab写法
注意:线性卷积和圆周卷积并没有想象中的那么大区别
——————————————————————————
实验一
n=0:1:15;
%初始化数据
a=0.1;
f1=0.0625;
%改变的频率
f2=0.4375;
f3=0.5625;
xb1=exp(-a*n).*sin(2*pi*f1*n);
figure
subplot(3,2,1);
%绘制时域茎杆图
stem(n,xb1,'.');
title('f=0.0625的时域特性');
xlabel('n');
ylabel('xb1(n)');
grid on;
%绘制频域特性曲线
[H,w]=freqz(xb1,1,[],'whole',1);
Hamplitude=abs(H);
subplot(3,2,2);
plot(w,Hamplitude);
title('f=0.0625的幅频响应');
xlabel('w/(2*pi)');
ylabel('|H(exp(jw))|');
grid on;%改变频率为0.4375,其余一样
xb2=exp(-a*n).*sin(2*pi*f2*n);
subplot(3,2,3);
stem(n,xb2,'.');
title('f=0.4375的时域特性');
xlabel('n');
ylabel('xb2(n)');
grid on;
[H,w]=freqz(xb2,1,[],'whole',1);
Hamplitude=abs(H);
subplot(3,2,4);
plot(w,Hamplitude);
title('f=0.4375的幅频响应');
xlabel('w/(2*pi)');
ylabel('|H(exp(jw))|');
grid on;%改变频率为0.5625,其余一样
xb3=exp(-a*n).*sin(2*pi*f3*n);
subplot(3,2,5);
stem(n,xb3,'.');
title('f=0.5625的时域特性');
xlabel('n');
ylabel('xb3(n)');
grid on;
[H,w]=freqz(xb3,1,[],'whole',1);
Hamplitude=abs(H);
subplot(3,2,6);
plot(w,Hamplitude);
title('f=0.5625的幅频响应');
xlabel('w/(2*pi)');
ylabel('|H(exp(jw))|');
grid on;
实验二
%利用自己定义的线性卷积函数直接求线性卷积和FFT求线性卷积,进行时间对比
N=16;
n=0:1:15;
p=8;q=2;
a=0.1;f=0.0625;
xa=exp(-((n-p).^2)./q);
xb=exp(-a*n).*sin(2*pi*f*n);
%自己定义的函数直接卷积
tic
[y1,ny1]=conv_self(xa,16,xb,16);
toc
%FFT求线性卷积,进行时间对比
X1=fft(xa,2*16-1);
H1=fft(xb,2*16-1);
Y5=X1.*H1;
tic
y=ifft(Y5);
toc
figure(2)
stem(y);
title("FFT线性卷积");%自己定义的直接卷积函数
function[y,ny]=conv_self(x,nx,h,nh)
ny=nx+nh-1;
for n=1:ny y(n)=0; for m=1:nh k=n-m+1; if(k>=1&k<=nx) y(n)=y(n)+h(m)*x(k); end end
end
figure(1)
n=0:1:ny-1;
xx=0:nx-1;
hh=0:nh-1;
subplot(311);
stem(xx,x,'.');
title('xa序列');
grid;
subplot(312);
stem(hh,h,'.');
title('xb序列');
grid;
subplot(313);
stem(n,y,'.');
title('调用自定义的线性卷积函数后的线性卷积序列');
grid;
end
%自己定义的圆周卷积,非FFT
%线性卷积和圆周卷积相等的条件:N>=n1+n2function [y,ny]=circonv(xa,na,xb,nb,N)y=ones(1,N);x1=ones(1,N);x2=ones(1,N);ny=min(na)+min(nb):min(na)+min(nb)+N-1消除图像偏移量for i=1:Nif(i<=length(xa))x1(i)=xa(i);elsex1(i)=0;endendfor i=1:Nif(i<=length(xb))x2(i)=xb(i);elsex2(i)=0;endendfor i=1:Ny(i)=0;for j=1:Nif j<=iy(i)=y(i)+x1(j)*x2(i+1-j);elsey(i)=y(i)+x1(j)*x2(N+i+1-j);endendend
%利用上面函数求圆周卷积
[y1,ny1]=circonv(xa,16,xb,16,16);
figure(3);
stem(ny1,y1);
%FFT圆周卷积
%线性卷积和圆周卷积相等的条件:N>=n1+n2
%FFT圆周卷积16点
N=16;
n=0:1:15;
p=8;q=2;
a=0.1;f=0.0625;
xa=exp(-((n-p).^2)./q);
xb=exp(-a*n).*sin(2*pi*f*n);
tic
y=ifft(fft(xa,16).*fft(xb,16));
toc
figure(2)
stem(y);
title("FFT的16点圆周卷积");
数字信号处理matlab相关实验相关推荐
- 数字信号处理matlab相关基础例题分析
#离散时间信号与系统的频域分析 例3.7 已知离散时间系统的传输函数如下 ,试绘制其频率响应曲线. freqz,为滤波器频率响应函数,用于生成对应的传输函数,其参数依次对应分子系数.分母系数以及生成的 ...
- 数字信号处理matlab实验报告,数字信号处理,matlab实验报告
数字信号处理,matlab实验报告 Matlab实验报告 实验一: 1. 实验Matlab代码: N=25; Q=0.9+0.3*j; WN=exp(-2*j*pi/N); x=zeros(25,1) ...
- 数字信号处理 matlab 答案,数字信号处理课后习题Matlab作业
<数字信号处理课后习题Matlab作业>由会员分享,可在线阅读,更多相关<数字信号处理课后习题Matlab作业(22页珍藏版)>请在人人文库网上搜索. 1.数字信号处理MATL ...
- matlab wc wp,数字信号处理MATLAB习题.PDF
数字信号处理MATLAB习题 数字信号处理MATLAB 习题 电气硕 72 李弘昌 第11 题 分别用脉冲响应不变法和双线性变换法设计一个巴特沃斯型IIR 低通数字滤波器,采样 频率 ,其通带边频 处 ...
- qtcp多用户同时发信息的信号处理_FPGA进行数字信号处理的相关问题有哪些?来看数字信号处理系统架构分析!...
关注并标星大同学吧 每周1次,打卡阅读 快速获取行业最新资讯 经验犹如一盏明灯的光芒 它使早已存在于头脑中 朦胧的东西豁然开朗 全文共3031字,预计阅读6分钟 笔经面经(第22期) 在2000年之后 ...
- 数字信号处理matlab设计滤波器
目 录 1 设计目的.内容及要求 1 1.1 设计目的 1 1.2 设计内容 1 1.3 设计思考 2 1.4 设计要求 2 2 设计方案与设计原理 3 2.1 设计思路 3 2.2 采样定理 3 ...
- 【信号处理】数字信号处理Matlab设计附GUI界面和报告
1 简介 信号处理是现代信息处理的基本内容,数字信号的处理更是重中之重.数字信号处理的研究内容主要是语音信号和图像信号,而研究语音信号对于现代语音通信有着积极的意义.研究语音信号又分为时域和频域两个 ...
- 数字信号处理MATLAB笔记
全文框架 1.函数笔记 fft():快速傅里叶变换 Y = fft(X,n,dim) 计算x的n点DFT,x长度不够n时补0,比n长时截短,dim为对x做傅里叶变换的维数. ifft():傅里叶反变换 ...
- 数字信号处理matlab心得,数字信号处理学习心得体会3篇
<数字信号处理>是我们通信工程和电子类专业的一门重要的专业基础课程,主要任务是研究数字信号处理理论的基本概念和基本分析方法,通过建立数学模型和适当的数学分析处理,来展示这些理论和方法的实际 ...
最新文章
- python使用matplotlib可视化包含倒影的柱状图(bar plot with shadow)、配置rcParams坐标轴正确显示负号(-)
- 在pymongo中使用distinct
- matlab把每次循环的结果保存idx,来自Matlab的循环Python
- python 编程该看那些书籍_我用python5年后,我发现学python编程必看的三本书!
- vue - blog开发学习2
- 掌握基于AOP事务管理
- delphi image 编辑器_照片拼图编辑器app下载-照片拼图编辑器下载 v1.0.0 安卓版
- 单片机c语言检测压力值,基于单片机的压力检测系统设计论文.doc
- 【Spring MVC】 错误: 找不到或无法加载主类 解决方法
- Java并发编程-常用的辅助类
- php 图片剪切为透明,解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题
- MQTT-WebSocket连接通信
- Linux多线程服务端编程:使用muduo C++网络库
- 产品设计体会(4013)产品路标规划
- 支付宝支付(cordova-plugin-alipay-v2 ) 报错AL138173
- LivePlayer H5播放器、在react中使用
- 清华EMBA课程系列思考之十四 -- 战略管理
- 用Win32DiskImager写入U盘容量变小,恢复容量方法
- win10使用FFmpeg录屏/录音
- 将登记照图片尺寸宽高文件大小进行调整修改的工具