我正在尝试在 matlab 中制作一些小脚本,所以我可以听到模拟和数字正弦波,但我很困惑并且有 2 个问题
在模拟代码中,想法是能够通过改变Tm来改变采样周期,这样我就可以选择用户想要的任何样本。但是我坚持使用 stem 函数,因为我无法更改stem()函数中的采样率
在数字代码中,我试图从扬声器中发出数字声音代码,但是我确实做到了,我什至不确定声音实际上是数字的,因为使用N=2^1时可以听到声音质量非常好,有一点噪音,(当它应该只以 8 位播放时)希望这里有人可以帮帮我。
-------------------- 对于模拟声音
clf
t=0:1:17.7
y=sin(2*pi*0.06*t) %// l von Vp de 2.5v
plot(t,y) %// Entry signal
hold on
plot(t,y,'ko') %// Output graph
stem(t,y)
hold off
n=[0:1:10000] %// Duration of tone
ftono=440 %// sound frequency
fm=8000 %// frecuency sample rate
Tm=1/fm %// sampling period
A=1
x=A*sin(2*pi*ftono*Tm*n) %// Sin wave using sam,pling period
sound(x,fm) %// Analogic sound
-------------------- 对于数字声音(将 N 从 2^1 更改为 2^16)
clf
t = 0:1:1600
fm = 1000
Tm=1/fm
ftono = 440
N=2^2
senial = sin(2*pi*t*ftono*Tm)
y = round(senial*N)/N
plot(round(sin(2*pi*t/1000)*N)/N)
sound(round(sin(2*pi*t*ftono*Tm)*N)/N, 1000)