MATLAB--DSP day1:

函数:

1.读取wav声音文件

读取wav声音文件,并将数据返回到向量y

[y,Fs]=audioread('xxx.wav');

Fs不用设置。wav文件需要在同一文件夹下

2.显示输出

disp(y);
disp('result');
disp(['tone freq = ',num2str(fc),', sampling frequency = ',num2str(Fs)]);

3.零极点

生成零极点图

zplane(b,a);

返回零点和极点

[z,p]=tf2zp(b,a);

4.幅频特性

返回有理分式表征的系统h的频谱:

[h,w]=freqz(b,a);		%返回有理分式表征的系统h的频谱

绘制幅频特性:

plot(t,abs(h));			%幅度
title('Amplitude of system');
xlabel('\omega/\pi');
ylabel('Amplitude');

plot(t,angle(h));		%相位
title('Phase of system');
xlabel('\omega/\pi');
ylabel('Phase');

5.DFT

DFT逆变换:

%N:DFT的点数
%X:X(omega)
x=ifft(X,N);

6.系统响应

%b1:分子系数
%a1:分母系数
impz(a1,b1,N);	%系统的冲激响应
stepz(a1,b1,N);	%系统的阶跃响应

算法:

1.用2个N点DFT计算2N点DFT:

知识点:圆周平移的实现,x[an]的实现

N=64;
n=0:N-1;
k=0:2*N-1;

x=cos(14*pi*k/N)+0.5*cos(38*pi*k/N);
g=cos(14*pi*2*n/N)+0.5*cos(38*pi*2*n/N);			%g[n]=x[2n]
h=cos(14*pi*(2*n+1)/N)+0.5*cos(38*pi*(2*n+1)/N);	%g[n]=x[2n+1]

X1=fft(x,2*N);

G=fft(g,N);
H=fft(h,N);

%算法关键:
for m=1:N
    X(m)=G(m)+exp(-1i*2*pi*(m-1)/(2*N))*H(m);
end
for m=(N+1):2*N			%G[k]和H[k]实现一次圆周平移
    X(m)=G(m-N)+exp(-1i*2*pi*(m-1)/(2*N))*H(m-N);
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值