Thông báo

Collapse
No announcement yet.

[Help] Âm thanh bị rè khi làm về bass-treble trên KIT DSK6713

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • [Help] Âm thanh bị rè khi làm về bass-treble trên KIT DSK6713

    Em đang làm đồ án về tạo hiệu ứng âm thanh trên kit DSK6713 nhưng làm tới chổ bass-treble thì ko hiểu sao vùng tần số khoảng từ 8k trở lên bị rè
    Em chia làm 6 band để lọc : low pass 100Hz, band pass 100 - 500 HZ, band pass 500 - 1KHZ, band pass 1K-3KHz, band pass 3 - 8KHZ và high pass 8KHZ
    Em không biết là âm thanh đưa vào có cần xử lý gì ko . Em chỉ đưa âm thành vào, đưa qua các bộ lọc FIR rồi dùng 6 cái slider để điều chỉnh độ khuếch đại (từ -3dB đến 3dB)
    đây là code em viết bằng C

    Code:
    #include "lp100.cof"
    #include "bp100-500.cof"
    #include "bp500-1000.cof"
    #include "bp1000-3000.cof"
    #include "bp3000-8000.cof"
    #include "hp8000.cof"
    
    #include "dsk6713_aic23.h"
    #include "math.h"
    #include "dsk6713.h" 
    #include "stdlib.h" 
    
    Uint32 fs=DSK6713_AIC23_FREQ_32KHZ;
    int temp,output;	
    int i=0;
    
    int yn1 = 0; 			 //initialize filter's output 
    int yn2 = 0; 			 //initialize filter's output 
    int yn3 = 0; 			 //initialize filter's output 
    int yn4 = 0; 			 //initialize filter's output 
    int yn5 = 0; 			 //initialize filter's output 
    int yn6 = 0; 			 //initialize filter's output
     
    int vol1 =3;
    int vol2 =3;
    int vol3 =3;
    int vol4 =3;
    int vol5 =3;
    int vol6 =3;
    
    short dly[N];                     //delay samples 
    
    interrupt void c_int11()      //ISR 
    {
    	short i; 
    	dly[0]=input_sample();    //input newest sample    
    
    	// Bass-Treble
    	if (DSK6713_DIP_get(2)==0)
     	{
    		yn1 = 0; 
    		yn2 = 0;
    		yn3 = 0;
    		yn4 = 0;                    
    		yn5 = 0;
    		yn6 = 0;
      		for (i = 0; i< N; i++) 
         		yn1 += (h1[i] * dly[i]);    //y(n) += h(i)* x(n-i) 
      		for (i = 0; i< N; i++) 
         		yn2 += (h2[i] * dly[i]);    //y(n) += h(i)* x(n-i)  
    	  	for (i = 0; i< N; i++) 
         		yn3 += (h3[i] * dly[i]);    //y(n) += h(i)* x(n-i) 
      		for (i = 0; i< N; i++) 
         		yn4 += (h4[i] * dly[i]);    //y(n) += h(i)* x(n-i) 
      		for (i = 0; i< N; i++) 
         		yn5 += (h5[i] * dly[i]);    //y(n) += h(i)* x(n-i) 
      		for (i = 0; i< N; i++) 
         		yn6 += (h6[i] * dly[i]);    //y(n) += h(i)* x(n-i)   
      		for (i = N-1; i > 0; i--)    //starting @ end of buffer 
            	dly[i] = dly[i-1];        //update delays with data move 
    
    		output = yn1*pow(2,vol1-3) + yn2*pow(2,vol2-3) + yn3*pow(2,vol3-3) + yn4*pow(2,vol4-3) + yn5*pow(2,vol5-3) + yn6*pow(2,vol6-3); 
    		output_sample(output >> 17);
    
    	} 
    	else	
    	{
    		output = dly[0];
    		output_sample(output);
    	}
    	return; 
    }
    
    void main() 
       { 
        comm_intr();                 //init DSK, codec, McBSP
        while(1);                    //infinite loop 
       }
    Do code này em tham khảo từ tài liệu nên có chổ này em không hiểu . Cái dòng "output_sample(output >> 17)" thì cái dấu >> nghĩa là gì vậy ?
    Còn dưới đây là thông số bộ lọc FIR

    Code:
    //*******lp100.cof**********
    #define N 81             //number of coefficients 
    int h1[N]= {
     0.001778231322125*48000,  0.00181391345684*48000, 0.001912769694844*48000, 0.002074621445111*48000,
        0.00229887686662*48000, 0.002584533087879*48000, 0.002930181189695*48000, 0.003334013927073*48000,
       0.003793836147146*48000, 0.004307077841307*48000, 0.004870809751382*48000,  0.00548176143179*48000,
       0.006136341652474*48000, 0.006830661010895*48000, 0.007560556605831*48000, 0.008321618611112*48000,
       0.009109218573952*48000,  0.00991853925021*48000,  0.01074460577791*48000,   0.0115823179807*48000,
        0.01242648358463*48000,  0.01327185212502*48000,  0.01411314931492*48000,  0.01494511164295*48000,
        0.01576252096657*48000,  0.01656023886624*48000,  0.01733324052725*48000,   0.0180766479189*48000,
         0.0187857620452*48000,  0.01945609404741*48000,  0.02008339494606*48000,  0.02066368381968*48000,
        0.02119327422747*48000,  0.02166879869531*48000,  0.02208723109765*48000,   0.0224459067819*48000,
        0.02274254029762*48000,   0.0229752406089*48000,  0.02314252368578*48000,   0.0232433223882*48000,
        0.02327699357489*48000,   0.0232433223882*48000,  0.02314252368578*48000,   0.0229752406089*48000,
        0.02274254029762*48000,   0.0224459067819*48000,  0.02208723109765*48000,  0.02166879869531*48000,
        0.02119327422747*48000,  0.02066368381968*48000,  0.02008339494606*48000,  0.01945609404741*48000,
         0.0187857620452*48000,   0.0180766479189*48000,  0.01733324052725*48000,  0.01656023886624*48000,
        0.01576252096657*48000,  0.01494511164295*48000,  0.01411314931492*48000,  0.01327185212502*48000,
        0.01242648358463*48000,   0.0115823179807*48000,  0.01074460577791*48000,  0.00991853925021*48000,
       0.009109218573952*48000, 0.008321618611112*48000, 0.007560556605831*48000, 0.006830661010895*48000,
       0.006136341652474*48000,  0.00548176143179*48000, 0.004870809751382*48000, 0.004307077841307*48000,
       0.003793836147146*48000, 0.003334013927073*48000, 0.002930181189695*48000, 0.002584533087879*48000,
        0.00229887686662*48000, 0.002074621445111*48000, 0.001912769694844*48000,  0.00181391345684*48000,
       0.001778231322125*48000
    };
    Thông số h em lấy từ matlab nhưng ko hiểu sao khi đưa vào thì âm thanh ko nghe gì phải *48000 mới nghe thấy, ko biết là do đâu nữa
    Last edited by vippro1610; 12-07-2012, 21:42.

  • #2
    Hix ko ai giúp hết . Vậy em xin tóm tắt lại câu hỏi để mọi người dễ đọc nha
    1. Tại sao âm thanh sau khi lọc bass-treble bị rè ở tần số cao (Có cần xử lý ấm thanh đưa vào trước khi xử lý ko ? )
    2. Cái dòng "output_sample(output >> 17)" thì cái dấu >> nghĩa là gì vậy (nếu ko để sẽ bị rè rất nhiều) ?
    2. Bộ lọc FIR em thiết kế từ fdatool của matlab nhưng khi đưa vào lại phải nhân lên nếu ko sẽ ko nghe thấy

    Ai giúp dc câu nào thì giúp em với nha

    Comment

    Về tác giả

    Collapse

    vippro1610 Tìm hiểu thêm về vippro1610

    Bài viết mới nhất

    Collapse

    Đang tải...
    X