2015-04-23 2 views
1

Я пытаюсь создать цифровой фильтр, который усиливает более высокие частоты аудиофайла.Создание цифрового фильтра с Matlab

Я хотел начать усиливаться при 3,155 КГц = fc и останавливаться при 20 кГц = fd для файлов с частотой дискретизации 44,1 кГц.

Поскольку я никогда не делал ничего подобного до того, как начал писать ручку & и, во-первых, создал передаточную функцию в плоскости s.

Я думал, что

G=(1+s/fc)/(1+s/fd) 

должно хватить на данный момент. Впоследствии я вычислил tustin-аппроксимацию (за руку и через matlab), и в обоих случаях я попал в фильтр, который выглядит совершенно неправильно в fvtool. (что-то вроде num=[5.304 , -4.934] и den=[1 , -0.6303]).

Кто-нибудь знает, где я сделал свою ошибку или как создать фильтр, соответствующий моим требованиям?

Обновление @Ryan Смит:

[y,fs]=audioread('test.wav'); 
s=tf('s'); 
G=(1+(s/3185))/(1+(s/20000)) 
D=c2d(G,1/fs,'tustin'); 
fvtool([5.304 -4.934],[1 -0.6303]); 

На тот, который я сделал на бумаге я использовал S = 2 * фс * ((г-1)/(г + 1))

+1

Пожалуйста, добавьте код для того, как вы создали приближение TUSTIN в Матлабе. –

+0

Я обновил свой главный пост, спасибо, что помог мне! – klaus

ответ

0

Я думаю, что это должно быть что-то вроде:

fc = 3185; fd = 20000; 
G_sys = tf([1/fc 1], [1/fd 1]); 

Вы можете увидеть в Matlab, что G_sys отличается от вашего G.

EDIT:

Должны ли она быть как Подписки

fvtool([5.304 -4.934],[1 -0.6303]) 

хорошо я думаю, что вы изменили порядок в num и den ...

+0

Спасибо за ваш ответ. Это та же самая передаточная функция, которую я использую. (если я умножу ваш фильтр на 1 в виде 6.37e07/6.37e07, я доберусь до моей функции передачи, чтобы он ничего не менял) – klaus

+0

о, я вижу, моя ошибка, но эй, посмотри мое редактирование ... – scmg

+0

Эй, спасибо за ваше редактирование! Я тоже попробовал это. Проблема в том, что даже если она выглядит лучше, амплитуда все равно начинается с 0 Гц, а не на 3185 Гц, если я использую свою частоту дискретизации 44100 Гц в fvtool). Но я обновил свой главный пост с правильным fvtool, спасибо – klaus

Смежные вопросы