Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ЦОС_06_09_12.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
496.93 Кб
Скачать

9.2 Постановка задачи

Разработать КИХ-фильтр в интегрированной среде Visual С++ для подавления полосы частот звукового файла формата WAV. Звуковой файл должен быть одноканальным с разрядностью равной 16. Программа должна работать в консольном режиме. В качестве параметров программе передаются: имя источника звукового файла, имя приемника звукового файла, порядок фильтра N, граничная частота fs. Варианты заданий представлены в таблице 9.3.

Таблица 9.3 –Варианты заданий

Номер

варианта

Вид окна

Вид фильтра

F,

Гц

fs,

Гц

Номер

варианта

Вид окна

Вид фильтра

F,

Гц

fs,

Гц

1

Хеннинга

ФНЧ

600

200

11

Хэмминга

ФНЧ

730

420

2

Хэмминга

ФВЧ

700

10000

12

Блэкмена

ФВЧ

830

10500

3

Блэкмена

ФНЧ

800

250

13

Хеннинга

ФВЧ

640

440

4

Хеннинга

ФВЧ

610

10100

14

Хэмминга

ФНЧ

740

10600

5

Хэмминга

ФНЧ

710

300

15

Блэкмена

ФВЧ

840

450

6

Блэкмена

ФВЧ

810

10200

16

Хеннинга

ФНЧ

650

10700

7

Хеннинга

ФНЧ

620

350

17

Хэмминга

ФВЧ

750

460

8

Хэмминга

ФВЧ

720

10300

18

Блэкмена

ФНЧ

850

10800

9

Блэкмена

ФНЧ

820

400

19

Хеннинга

ФВЧ

660

470

10

Хеннинга

ФВЧ

630

10400

20

Хэмминга

ФНЧ

800

500

9.3 Порядок выполнения работы

1. Рассчитайте значение частоты среза с учетом эффекта смазывания характеристик фильтра, вводимого весовой функцией окна, по формулам 9.4 и 9.5 соответственно для ФНЧ и ФВЧ:

(9.4)

(9.5)

3. Запустите систему Visual С++ и создайте консольный проект. За основу программы возьмите код, представленный в приложении В;

4. В приведенном коде (файл Filter.cpp)найдите выражение расчета порядка фильтра:

int N=0.9*tw.freq/atof(argv[4]); //расчет порядка фильтра

Измените выражение расчета порядка фильтра согласно данным своего варианта;

5. Измените функцию реализацию функции Koeffokno (float *koeff,int count) согласно формулам из таблицы 9.2. В примере рассчитываются коэффициенты для окна Блэкмена;

6. Измените реализацию функции IdealFilterKoeff согласно своему варианту. В примере рассчитываются коэффициенты идеального высокочастотного фильтра;

7. Скомпилируйте проект в среде Visual Studio;

8. Создайте текстовый файл и сохраните его с расширением bat (например, lr9.bat ). В файле наберите следующий текст:

Filter.exe file1 file2 fS F

где Filter.exe – разработанная консольная программа;

file1, file2 – полные имена файлов соответственно источника и приемника.

Пример:

Filter.exe Kalimba1.wav Kalimba2.wav 10000 1000

Рисунок 9.2 –Интерфейс программы

9. Получите у преподавателя или выберите самостоятельно звуковой одноканальный wav файл размером 16 бит одного отсчета. Запустите командный файл. Интерфейс программы представлен на рисунке 9.2;

10. Прослушайте звуковые файлы: исходный и полученный в результате фильтрации. Убедитесь, что цифровой фильтр работает правильно;

  1. Сделайте выводы и составьте отчет по работе.