0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 44
1

Звуковой фильтр с++

04.11.2015, 10:09. Показов 1302. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Выдали задания, не могу понять как программа должна работать...я бы уже начал писать, но чисто в голове не укладывается как программа должна правильно работать. Подскажите, пожалуйста!
 Комментарий модератора 

Обязательно к прочтению: правила форума.
В частности:
п. 1.4 Официальными языками форума являются русский и английский языки. Размещение сообщений на других языках запрещено.
п. 5.18 Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Миниатюры
Звуковой фильтр с++  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2015, 10:09
Ответы с готовыми решениями:

Звуковой сигнал!
#include <ctime> #include <stdio.h> #include <locale.h> #include <string> #include <conio.h> ...

Звуковой буфер
Ребят, теперь косяк с выводом. Одним буффером выводить получается, но я не понимаю как сделать...

Звуковой сигнал биппера! (C++)
Здравствуйте, у меня такая проблема, как заставить биппер подать голос! cout <<...

Информация о звуковой карте
Здравствуйте! Подскажите пожалуйста функцию, с помощью которой можно узнать информацию о звуковой...

5
nmcf
04.11.2015, 10:34
  #2

Не по теме:

Почему не по-китайски?

0
16 / 16 / 10
Регистрация: 19.10.2015
Сообщений: 34
04.11.2015, 10:49 3
Все довольно просто
1. Читаешь звуковой файл, получаешь значения s(k).
2. Вводишь с клавиатуры а(к), получаешь фильтр.
3. Фильтруешь, на выходе фильтра получаешь S(k)
4. Записываешь новый файл с полученными S(k)

ЗЫ: начни с чтения и записи файла, скинь срр код и можно дальше посмотреть
0
0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 44
04.11.2015, 12:56  [ТС] 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "stdafx.h"
#include <conio.h>
#include <math.h>
struct WAVHEADER
{
    char chunkId[4];
    unsigned long chunkSize;
    char format[4];
    char subchunk1Id[4];
    unsigned long subchunk1Size;
    unsigned short audioFormat;
    unsigned short numChannels;
    unsigned long sampleRate;
    unsigned long byteRate;
    unsigned short blockAlign;
    unsigned short bitsPerSample;
    char subchunk2Id[4];
    unsigned long subchunk2Size;
};
 
int _tmain(int argc, _TCHAR* argv[])
{
     FILE *file;
    errno_t err;
    err = fopen_s(&file, "0.wav", "rb");
    if (err)
    {
        printf_s("Failed open file, error %d", err);
        _getch();
        return 0;
    }
    WAVHEADER header;
    fread_s(&header, sizeof(WAVHEADER), sizeof(WAVHEADER), 1, file);
    printf_s("Osnovni parametru WAV file :\n");
     // Выведем данные про файл на экран
    float fDurationSeconds =  header.chunkSize/ (header.bitsPerSample / 8) / header.numChannels / header.sampleRate;
    int iDurationMinutes = (int)floor(fDurationSeconds) / 60;
    fDurationSeconds = fDurationSeconds - (iDurationMinutes * 60);
    printf_s("Duration: %02d:%02.f\n", iDurationMinutes, fDurationSeconds);
    printf_s("Channels: %d\n", header.numChannels);
    printf_s("Sample rate: %d\n", header.sampleRate);
    printf_s("Bytes per sample: %d\n", header.bitsPerSample/8);
    _getch();
    return 0;
}

вот код с открытием файла и выводом на экран нужных данных..
кое что прояснилось...т.е. я в файле ищу S(к), ввожу с клавиатуры a(k) и n.
через формулу высчитываю S(i)(первая формула) и заменяю S(k) на S(i). так ведь?
тогда зачем вторая формула...и помогите расписать, пожалуйста, если не трудно, ряд с первой формулы в C..
А также где именно в описании этот S(k)
0
16 / 16 / 10
Регистрация: 19.10.2015
Сообщений: 34
04.11.2015, 14:20 5
со звуковыми файлами не работал как вытащить амплитуды не изучил, это на тебе

по поводу второй формулы - накладывает ограничения на сумму коэффициентов фильтра, т. е. это может быть
а1 = {0.5, 0.5} => sum(a1) = 1
a2= {1/4,1/4,1/4,1/4} => sum(a2) = 1


S_новое(k) = s_старое(k-1) * 0.5 + s_старое(k) * 0.5 //для а1// или
S_новое(k) = s_старое(k-3) * 0.25 + s_старое(k-2) * 0.5 + s_старое(k-1) * 0.5 +s_старое(k) * 0.5//для а2//
0
0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 44
05.11.2015, 06:40  [ТС] 6
узнать бы как S(k) добыть..и где

Добавлено через 15 часов 25 минут
Подскажите, пожалуйста, кто-то где я могу найти S(k) старое
0
05.11.2015, 06:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2015, 06:40
Помогаю со студенческими работами здесь

Не подается звуковой сигнал
В общем, должен написать будильник, основную часть сделал, но не подается звуковой сигнал по...

Неправильная генерация звуковой волны
Я решил со звуком поиграться и написал такой код: #include &lt;cmath&gt; #include &lt;iostream&gt;...

Как обратится к звуковой карте?
Решил все-таки создать тему.... Итак, у меня есть аудиофайл (к примеру wave) мне нужно сравнить его...

Воспроизвести звуковой файл (ручками)
Возможно ли это? если да, то как?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru