coeffs
필터 계수 가져오기
설명
예제
graphicEQ를 생성한 다음 coeffs를 호출하여 계수를 가져옵니다. 계수는 2차섹션형(SOS)으로 반환됩니다. B의 차원은 3×(M * EQOrder / 2)입니다. 여기서 M은 대역통과 이퀄라이저의 개수입니다. A의 차원은 2×(M * EQOrder / 2)입니다.
fs = 44.1e3; x = 0.1*randn(fs*5,1); equalizer = graphicEQ('SampleRate',fs, ... 'Gains',[-10,-10,10,10,-10,-10,10,10,-10,-10], ... 'EQOrder',2); [B,A] = coeffs(equalizer);
계수 B와 A를 사용하는 filter 함수의 출력값을 graphicEQ의 출력값과 비교합니다.
y = x; for section = 1:equalizer.EQOrder/2 for i = 1:numel(equalizer.Gains) y = filter(B(:,i*section),A(:,i*section),y); end end audioOut_filter = y; audioOut = equalizer(x); subplot(2,1,1) plot(abs(fft(audioOut))) title('graphicEQ') ylabel('Magnitude Response') subplot(2,1,2) plot(abs(fft(audioOut_filter))) title('Filter function') xlabel('Bin') ylabel('Magnitude Response')

디폴트 gammatoneFilterBank를 생성한 다음 coeffs를 호출하여 계수를 가져옵니다. 각 감마톤 필터는 4개의 2차섹션형(SOS)의 종속 연결로 구성된 8차 IIR 필터입니다. B의 크기는 4×3×NumFilters입니다. A의 크기는 4×2×NumFilters입니다.
[audioIn,fs] = audioread('Counting-16-44p1-mono-15secs.wav'); gammaFiltBank = gammatoneFilterBank('SampleRate',fs); [B,A] = coeffs(gammaFiltBank);
계수 B와 A를 사용하는 filter 함수의 출력값을 gammaFiltBank의 출력값과 비교합니다. 단순히 보기 위해 채널 8의 출력값만 비교합니다.
channelToCompare = 8; y1 = filter(B(1,:,channelToCompare),[1,A(1,:,channelToCompare)],audioIn); y2 = filter(B(2,:,channelToCompare),[1,A(2,:,channelToCompare)],y1); y3 = filter(B(3,:,channelToCompare),[1,A(3,:,channelToCompare)],y2); audioOut_filter = filter(B(4,:,channelToCompare),[1,A(4,:,channelToCompare)],y3); audioOut = gammaFiltBank(audioIn); t = (0:(size(audioOut,1)-1))'/fs; subplot(2,1,1) plot(t,audioOut(:,channelToCompare)) title('Gammatone Filter Bank') ylabel('Amplitude') subplot(2,1,2) plot(t,audioOut_filter) title('Filter Function') xlabel('Time (s)') ylabel('Amplitude')

디폴트 octaveFilterBank를 생성한 다음 coeffs를 호출하여 계수를 가져옵니다. 계수는 2차섹션형(SOS)으로 반환됩니다. B와 A의 차원은 T×3×M입니다. 여기서 T는 섹션 수이고 M은 필터 개수입니다.
[audioIn,fs] = audioread('Counting-16-44p1-mono-15secs.wav'); octFiltBank = octaveFilterBank('SampleRate',fs); [B,A] = coeffs(octFiltBank);
계수 B와 A를 사용하는 filter 함수의 출력값을 octaveFilterBank의 출력값과 비교합니다. 단순히 보기 위해 채널 5의 출력값만 비교합니다.
channelToCompare = 5; audioOut_filter = filter(B(1,:,channelToCompare),A(1,:,channelToCompare),audioIn); audioOut = octFiltBank(audioIn); subplot(2,1,1) plot(audioOut(:,channelToCompare)) title('Octave Filter Bank') subplot(2,1,2) plot(audioOut_filter) title('Filter Function')

입력 인수
필터 계수를 가져올 객체로, gammatoneFilterBank, octaveFilterBank, graphicEQ 또는 shelvingFilter 객체로 지정됩니다.
출력 인수
버전 내역
R2019a에 개발됨octaveFilterBank의 coeffs 함수는 이제 4차섹션형(FOS) 대신 2차섹션형(SOS)으로 필터를 반환합니다. 이 새로운 형식은 업데이트된 내부 표현 방식을 반영하며 매우 낮은 주파수에서도 안정적이도록 향상되었습니다.
참고 항목
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)