- 积分
- 1332
- 在线时间
- 650 小时
- 最后登录
- 2024-1-22
- 阅读权限
- 70
- 精华
- 9
- UID
- 21176
- 帖子
- 890
- 精华
- 9
- 经验
- 1332 点
- 金钱
- 1082 ¥
- 注册时间
- 2007-4-2
|
楼主 |
发表于 2008-4-16 01:01
|
显示全部楼层
加一个东东
测出各频率点后,用下面的语句在Matlab7中可以画出幅频波特图
ndB是想要的通带不平衡度,如-1,-2,-3等,只要填正数就行了
Freq是频率,Ui输入电压,Uo输出电压,这三个是一组数据,每一个变量Freq/Ui/Uo都是数目相同的数组
测得点要足够多,特别是两端下降点要够低,否则画不出来,或者画出来不对
以下是我画耳放的一个例子(听耳放时音量电位器在8点钟就够了,10点钟时可能会被其他人听到),其实输入电压也是变化的,当成不变只是作一个大概的参考。红色部分是要填放数据。语句是我自己搞的,不存在什么侵权问题,或许本来就有组件,只是我没找着而已。
ndB=3;
Freq=[10,58,88,140,210,859,1490,2300,8600,12990,17000,20000,24000,31000,40000,150000,208000];
Uo=[0.16,0.68,0.86,0.9,0.94,0.98,0.98,0.98,0.98,0.96,0.94,0.92,0.90,0.88,0.82,0.18,0.48];
Ui=[0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41,0.41];
BodeFreq=log10(Freq);
Gv=20*log10(Uo./Ui);
[Gvmax]=max(Gv);
Gv1dB=Gvmax-ndB;
for n=1: (length(Gv)-1)
Xmin=Gv(n)-Gv1dB
Xmax=Gv(n+1)-Gv1dB
if Xmin<=0
if Xmax>=0
LocationL=n
end
end
if Xmin>=0
if Xmax<=0
LocationH=n
end
end
end
FreqL=BodeFreq(LocationL)+((Gv1dB-Gv(LocationL))/(Gv(LocationL+1)-Gv(LocationL)))*(BodeFreq(LocationL+1)-BodeFreq(LocationL))
FbwL=10^FreqL
FreqH=BodeFreq(LocationH)+((Gv(LocationH)-Gv1dB)/(Gv(LocationH)-Gv(LocationH+1)))*(BodeFreq(LocationH+1)-BodeFreq(LocationH))
FbwH=10^FreqH
plot(BodeFreq,Gv,'b*-',[BodeFreq(1),BodeFreq(length(BodeFreq))],[Gvmax,Gvmax],'b',[BodeFreq(1),BodeFreq(length(BodeFreq))],[Gv1dB,Gv1dB],'g',[FreqL,FreqL],[(Gv1dB-0.5),(Gv1dB+0.5)],'g',[FreqH,FreqH],[(Gv1dB-0.5),(Gv1dB+0.5)],'g');
xlabel('频率/10^xHz');
ylabel('增益/dB');
text((FreqL),(Gv1dB-0.5),[ num2str(FbwL) 'Hz']);
text((FreqH),(Gv1dB+0.5),[ num2str(FbwH) 'Hz']);
text((BodeFreq(1)+0.1),(Gv1dB+0.5),['-' num2str(ndB) 'dB']);
把对应数据输入电脑,就可以得到幅频图,有了幅频图,调整有参考,那应容易一些吧!
太晚了,88 |
|