Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / как отфильтровать зная дисперсию сигнала / 4 сообщений из 4, страница 1 из 1
02.12.2012, 12:55
    #38061562
spyker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как отфильтровать зная дисперсию сигнала
Всем привет, вообщем вот такой вопрос:

у меня есть сигнал с шумом, мне нужно его отфильтровать по дисперсии:
написал в программе так: посчитал дисперсию сигнала с шумом, посчитал энергию сигнала с шумом, если дисперсия больше энергии зануляем

так это нужно было сделать?
...
Рейтинг: 0 / 0
02.12.2012, 14:50
    #38061624
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как отфильтровать зная дисперсию сигнала
Тема С++ не прослеживается. Дополните вопрос.
...
Рейтинг: 0 / 0
02.12.2012, 15:20
    #38061642
spyker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как отфильтровать зная дисперсию сигнала
mayton,

дополнил
...
Рейтинг: 0 / 0
02.12.2012, 15:22
    #38061646
spyker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как отфильтровать зная дисперсию сигнала
вот код который реализовал
Код: plaintext
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.
vector<pair<double,double>>ENERGY(vector<double>A,vector<double>B,vector<pair<double,double>>C,int Fd)
{

	double e_s,
	sum_s=0,
	g=0; //пробуем считать СКО
	double xj=0;
	for(int i=0;i<A.size();i++)
	{
		sum_s+=abs(A[i]);
                //sum_s+=A[i]*A[i];
	}
	e_s=(sum_s/A.size())*0.95; //я оставил 95 процентов энергии сигнала

	for(int i=0;i<B.size()/2;i++)
	{

		g+=sqrt(B[i]*B[i]-(B[i]*B[i])/(B.size()));

		if(g>e_s) //сравниваем каждый шаг подсчета модуля АЧХ с энергией сигнала
		{
			C[i].first=0;
			C[i].second=0;
		}
	}
	g=0;
	for(int i=B.size()-1;i>B.size()/2;i--)
	{
		g+=sqrt(B[i]*B[i]-(B[i]*B[i])/(B.size()));

		if(g>e_s) //сравниваем каждый шаг подсчета модуля АЧХ с эенргией сигнала
		{
			C[i].first=0;
			C[i].second=0;
		}
	}

	return C;
}


Модератор: Отформатировано
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / как отфильтровать зная дисперсию сигнала / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]