当前位置:首页 > 程控滤波器
总体电路图:
五、设计验证及测试方法
1.放大器测试方法:
放大器输入端输入峰值为10mV的正弦信号,将放大器增益设置为40dB,从100Hz开始增大输入信号的频率,用示波器测试放大器的通频带。然后将输入信号的频率分别固定为100Hz、1kHz、40kHz,预置放大器增益,用低频毫伏表测试其实际增益,计算增益误差,并检验增益步进。
2.滤波器测试方法:
将放大器增益设置为40dB,滤波器设置为低通滤波器,预置滤波器的截止频率,用低频毫伏表和示波器测试其实际截止频率,计算相对误差,并检测截止频率步进和2fc处的电压总增益。高通滤波器的测试方法同上。椭圆滤波器的测试,将放大器的增益设置为40dB,用示波器测量其通带起伏,-3dB截止频率和200KHz的总电压增益。
程序:
#include
#define uchar unsigned char #define uint unsigned int
#define RS_HIGH P2OUT|=BIT0 #define RS_LOW P2OUT&=~BIT0
#define RW_HIGH P2OUT|=BIT1 #define RW_LOW P2OUT&=~BIT1
#define E_HIGH P2OUT|=BIT2 #define E_LOW P2OUT&=~BIT2
#define BUSY_OUT P1DIR|=BIT7 #define BUSY_IN P1DIR&=~BIT7 #define BUSY_DATA P1IN&BIT7
uchar Data1[16]={\gain is:0 db%uchar Data2[16]={\gain is:10db%uchar Data3[16]={\gain is:20db%uchar Data4[16]={\gain is:30db%uchar Data5[16]={\gain is:40db\
uchar Data6[16]={\kong FIR \
void DelayMS(uint ms) {
uint i; while(ms--){
for(i=0; i<800;i++); } }
void LcdBusy(void) {
RS_LOW; RW_HIGH; E_HIGH;
_NOP();_NOP(); BUSY_IN;
while(BUSY_DATA); BUSY_OUT; E_LOW; }
void WriteCommand(uchar Command) {
LcdBusy(); RS_LOW; RW_LOW; E_HIGH;
_NOP();_NOP(); P1OUT=Command; _NOP();_NOP(); E_LOW; }
void WriteData(uchar Data) {
LcdBusy(); RS_HIGH; RW_LOW; E_HIGH;
_NOP();_NOP(); P1OUT=Data; _NOP();_NOP(); E_LOW; }
void LcdInit(void) {
WriteCommand(0x38); DelayMS(5);
WriteCommand(0x0c); DelayMS(5);
WriteCommand(0x06); DelayMS(5);
WriteCommand(0x01); DelayMS(5); }
void InitPort(void) {
P1SEL=0x00;
P1DIR=0xFF; P2DIR=0x07; }
void display_xy(unsigned char x,unsigned char {
if(y==0x01) {
x = x + 0x40 + 0x80; } else {
x = x+0x80; }
WriteCommand(x); }
void Disp1Char(uchar x,uchar y,uchar data) {
display_xy(x,y); WriteData(data); }
void Ioinit(void); int i;
int main(void) {
int data1,data2,data3,data4,data5;
y)
共分享92篇相关文档