Matlab 怎么对信号进行采样

Matlab 怎么对信号进行采样,第1张

可以在知windows自带的录音工具,里面调节

默仔哗槐认44.1KHz,16bit,双声道

还可以采样后自己在MATLAB程序里面再次采样

例如现在的声音片段:myvoice.wav

clear

[y,f,b]=wavread('myvoice.wav')

l=length(y)%采样点数

t=l/f%采样时间

%现在y:l*2双声道芦樱,f=44.1e3,b=16

%需要20e3Hz的采道样频率,得到新数据y2

f2=20e3

l2=t*f2

B=l/l2

for

i=1:l2

y2(i,:)=y(round(i*B),:)%重念友新采样

end

subplot(211)

plot(y)

subplot(212)

plot(y2)

wavwrite(y2,20e3,'new.wav')

1、理想采样信号序列

(1)首先产生信号x(n),0<=n<=50

n=0:50%定义序列的长度是50

A=444.128%设置信号有关的参数

a=50*sqrt(2.0)*pi

T=0.001%采样率

w0=50*sqrt(2.0)*pi%ω符号在MatLab 中不能输入,用w 代替

x=A*exp(-a*n*T).*sin(w0*n*T)%pi 是MATLAB 定义的π,信号乘可采用“.*”

close all %清除已经绘制的x(n)图形

subplot(3,1,1)stem(x)%绘制x(n)的图形

title(‘理想采样信号序列’)%设置结果图形的标题

(2)绘制信号x(n)的幅度谱和相位

k=-25:25

W=(pi/12.5)*k

X=x*(exp(-j*pi/12.5)).^(n’*k)

magX=abs(X)%绘制x(n)的幅度谱

subplot(3,1,2)stem(magX)title(‘理想采样信号序列的幅度谱’)

angX=angle(X)%绘制x(n)的相位谱

subplot(3,1,3)stem(angX) title (‘理想采样信号序列的相位谱’)

(3)改变参数为: 1, 0.4, 2.0734, 1 0 A = α = Ω = T =

n=0:50%定义序列的长度是50

A=1a=0.4w0=2.0734T=1%设置信号有关顷搜的参数和采样率T

x=A*exp(-a*n*T).*sin(w0*n*T)%pi 是MATLAB 定义的π,信号乘可采用“.*”

close all %清除已经绘制的x(n)图形

subplot(3,1,1)stem(x)%绘制x(n)的图形

title(‘理想采样信号序列’)

k=-25:25

W=(pi/12.5)*k

X=x*(exp(-j*pi/12.5)).^(n’*k)

magX=abs(X)%绘制x(n)的幅度谱

subplot(3,1,2)stem(magX)title(‘理想采样信号序列的幅度谱’)

angX=angle(X)%绘制x(n)的相位谱

subplot(3,1,3)stem(angX) title (‘理想采样信号序列的相位谱’)

2、单位脉冲序列

在 MatLab 中,这一函数可以用zeros 函数实现:

n=1:50%定义序列的长度是50

x=zeros(1,50)%注意:MATLAB 中数组下标从1 开始

x(1)=1close all

subplot(3,1,1)stem(x)title(‘单位冲击信号序列’)

k=-25:25

X=x*(exp(-j*pi/12.5)).^(n’*k)

magX=abs(X)%绘制x(n)的幅度谱

subplot(3,1,2)stem(magX)title(‘单位冲击信号的幅度谱’)

angX=angle(X)%绘制x(n)的相位谱

subplot(3,1,3)stem(angX) title (‘单位冲击信号的相位谱’)

3、矩形序列

n=1:50x=sign(sign(10-n)+1)

close allsubplot(3,1,1)stem(x)title(‘单位冲击信号序列’)

k=-25:25X=x*(exp(-j*pi/25)).^(n’*k)

magX=abs(X)%绘制x(n)的幅度谱

subplot(3,1,2)stem(magX)title(‘单位冲击信号的幅度谱’)

angX=angle(X)%绘薯乎隐制x(n)的相位谱

subplot(3,1,3)stem(angX) title (‘单位冲击信号的相位谱’)

4、特定冲击串

x(n) =δ (n) + 2.5δ (n ?1) + 2.5δ (n ? 2) +δ (n ? 3)

n=1:50%定义序列的长度是50

x=zeros(1,50)%注意:MATLAB 中数组下标从1 开始

x(1)=1x(2)=2.5x(3)=2.5x(4)=1

close allsubplot(3,1,1)stem(x)title(‘单位冲击信号序列数厅’)

看您的采样周期脊渗蚂是1/5,直接采样就好了(不要纠结于冲击函数的数学表达在matlab里怎么对应,这是硬要用连续函数表示离散信号的结果,matlab里只能表示离散信号,所以樱埋直接忽略之即可)

t

=

[-10:1/5:10]

k

=

2

x

=

exp(1i*pi*k*t.^2)

得到x是一个向量,喊歼是t中各个采样时刻对应的采样值。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12426850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存