前言:
眼前各位老铁们对“matlab音频信号处理代码文党”大致比较关心,看官们都想要了解一些“matlab音频信号处理代码文党”的相关资讯。那么小编同时在网摘上网罗了一些关于“matlab音频信号处理代码文党””的相关资讯,希望你们能喜欢,各位老铁们快快来了解一下吧!数字信号处理系列文章,理论+实践,持续更新,欢迎关注@平凡的兵 一起共成长。
本文主要讲解信号处理中基础信号,需要熟知于心,这些都是根基,我们往往容易忽略。
单位冲击信号
这个信号是数字信号处理的灵魂信号,matlab和python代码均附上。
function main() [x,n] = impseq(0,-10,10);stem(n,x);xlabel('n');ylabel('x(n)')function [x,n] = impseq(n0,n1,n2)% Generates x(n) = delta(n-n0); n1 <= n <= n2% ----------------------------------------------% [x,n] = impseq(n0,n1,n2)%n = linspace(n1,n2,n2-n1+1);x = [(n-n0) == 0];
import numpy as npimport matplotlib.pyplot as pltdef impseq(n0,n1,n2): ''' Generates x(n) = delta(n-n0); n1 <= n <= n2 ---------------------------------------------- (x,n) = impseq(n0,n1,n2) ''' n = np.linspace(n1, n2, n2-n1+1) x = [(n-n0) == 0] return x,nif __name__ == '__main__': (x,n) = impseq(0, -10, 10) plt.figure() plt.stem(n,x[0]) plt.savefig('impseq.jpg')单位阶跃信号
它等效的物理模型是开关的闭合。
function main() [x,n] = stepseq(0,-10,10);stem(n,x);xlabel('n');ylabel('x(n)');function [x,n] = stepseq(n0,n1,n2)% Generates x(n) = u(n-n0); n1 <= n <= n2% ------------------------------------------% [x,n] = stepseq(n0,n1,n2)%n = linspace(n1,n2,n2-n1+1);x = [(n-n0) >= 0];
实指数信号
实指数信号可以描述很多物理现象,比如生物的自然繁衍、银行存款的本金利息、原子核的裂变,都具有指数增长(a>1)的特性。声音在大气中传播、RC电路的响应,都是按照指数衰减(a<1)的特性变化。
n = np.linspace(0, 10, 11) a = 0.5 x = np.power(a, n) plt.xlabel("n") plt.ylabel("x(n)") plt.title('x(n)=0.5^n') plt.xticks(n) plt.stem(n,x) plt.savefig('power_small.jpg')复指数信号
实指数信号的拓展。注意复数的实部、虚部和幅值。
具体示例
n = np.linspace(-10, 10, 21)x = np.exp((-0.1+0.3*1j)*n)plt.xticks(n)plt.subplots_adjust(wspace=None, hspace=0.45)plt.subplot(2,2,1)plt.title('Real part')plt.ylabel('Amptitude')plt.stem(n,x.real)plt.subplot(2,2,2)plt.title('Imag part')plt.ylabel('Amptitude')plt.stem(n,x.imag)plt.subplot(2,2,3)plt.title('Magnitude part')plt.ylabel('Magnitude')plt.stem(n,abs(x))plt.subplot(2,2,4)plt.title('Phase part')plt.ylabel('Degree')plt.stem(n,np.angle(x)*180/pi)plt.tight_layout()plt.savefig('complex_exp.jpg')正弦信号
A表示信号的幅度,w为数字频率,为初始相位。
生活中很多物理现象都可以用正弦信号来描述,例如交流电信号、通信载波信号、音频信号。
正弦信号的复数形式,即复正弦信号 ,该信号不仅是傅里叶变换时的基信号,还是线性时不变系统的特征信号。
n = np.linspace(0,100,101); # 时间向量 x = 0.7*sin(2*pi/10*n); # 信号 plt.xlabel("n") plt.title('x = 0.7*sin(2*pi/10*n)') plt.stem(n,x) plt.tight_layout() plt.savefig('sin.jpg')
参考资料
[1] 深入浅出数字信号处理,江志红
[2] Digital signal processing using matlab, Fourth Edition, Vinay K. Ingle, John G. Proakis
标签: #matlab音频信号处理代码文党