С Новым годом! Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 5
1

Спектр сложной функции в MATLAB

30.10.2015, 10:45. Показов 2223. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно построить спектр функции
Спектр сложной функции в MATLAB
.
Проблема в том, что график суммы двух синусоид в скобках строится, а вот при умножении на скосинусоиду после скобки выдает ошибку:
Error using *
Inner matrix dimensions must agree.
Error in Spectr2 (line 18)
Signal=(Ak+A1*cosd((F1*360).*T+Phi1)+A2*cosd((F2*360).*T+Phi2))*cosd((F0*360).*T +Phi0);% Массив сигнала
Помогите разобраться!
Вот исходный код (за основу брал тот, что нашел в интернете http://habrahabr.ru/post/112068/ - изначально там сумма двух косинусоид)

clear all% Очистка памяти
%% Параметры
Tm=2;% Длина сигнала (с)
Fd=512;% Частота дискретизации (Гц)
Ak=1;% Постоянная составляющая
A1=0.7;% Амплитуда сигнала 1
A2=0.5;% Амплитуда сигнала 2
A0=1;% Амплитуда сигнала 0
F0=6000000; % Частота сигнала 0 (Гц)
F1=1000;% Частота сигнала 1 (Гц)
F2=2000;% Частота сигнала 2 (Гц)
Phi0=0; % Начальная фаза сигнала 0 (Градусов)
Phi1=0;% Начальная фаза сигнала 1 (Градусов)
Phi2=0;% Начальная фаза сигнала 2 (Градусов)
FftL=1024;% Количество линий Фурье спектра
%% Генерация рабочих массивов
T=0:1/Fd:Tm;% Массив отсчетов времени
Signal=(Ak+A1*cosd((F1*360).*T+Phi1)+A2*cosd((F2*360).*T+Phi2))*cosd((F0*360).*T +Phi0);% Массив сигнала !!!! ЗДЕСЬ ГДЕ ТО ОШИБКА !!!!!!
%% Спектральное представление сигнала
FftS=abs(fft(Signal,FftL));% Амплитуды преобразования Фурье сигнала
FftS=2*FftS./FftL;% Нормировка спектра по амплитуде
FftS(1)=FftS(1)/2;% Нормировка постоянной составляющей в спектре
FftSh=abs(fft(Signal,FftL));% Амплитуды преобразования Фурье смеси сигнал+шум
FftSh=2*FftSh./FftL;% Нормировка спектра по амплитуде
FftSh(1)=FftSh(1)/2;% Нормировка постоянной составляющей в спектре
%% Построение графиков
subplot(2,1,1);% Выбор области окна для построения
plot(T,Signal);% Построение сигнала
title('Сигнал');% Подпись графика
xlabel('Время (с)');% Подпись оси х графика
ylabel('Амплитуда');% Подпись оси у графика
subplot(2,1,2);% Выбор области окна для построения
plot(T,Signal);% Построение смеси сигнал+шум
title('Сигнал+шум');% Подпись графика
xlabel('Время (с)');% Подпись оси х графика
ylabel('Амплитуда');% Подпись оси у графика

F=0:Fd/FftL:Fd/2-1/FftL;% Массив частот вычисляемого спектра Фурье
figure% Создаем новое окно
subplot(2,1,1);% Выбор области окна для построения
plot(F,FftS(1:length(F)));% Построение спектра Фурье сигнала
title('Спектр сигнала');% Подпись графика
xlabel('Частота (Гц)');% Подпись оси х графика
ylabel('Амплитуда');% Подпись оси у графика
subplot(2,1,2);% Выбор области окна для построения
plot(F,FftSh(1:length(F)));% Построение спектра Фурье сигнала
title('Спектр сигнала');% Подпись графика
xlabel('Частота (Гц)');% Подпись оси х графика
ylabel('Амплитуда');% Подпись оси у графика
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2015, 10:45
Ответы с готовыми решениями:

Фазовый спектр в matlab
Помогите создать в матлабе фазовый спектр сигнала. Или кто-нибудь может написать функцию?

Амплитудный спектр сигнала (Matlab)
Здравствуйте. Подскажите, пожалуйста, какие есть способы вычисления амплитудного спектра...

Почему амплитудный спектр остался одинаковым, а фазовый спектр изменился
Здравствуйте! у меня такой вопрос задали по лабораторной работе изменить сигнал зеркально и...

Найти спектр фигуры и визуализировать этот спектр
Помогите пожалуйста с заданием - нужно взять простую фигуру, найти её спектр и визуализировать этот...

6
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
30.10.2015, 11:15 2
Лучший ответ Сообщение было отмечено KolyaIce как решение

Решение

Matlab M
1
Signal=(Ak+A1*cosd((F1*360)*T+Phi1)+A2*cosd((F2*360)*T+Phi2)).*cosd((F0*360)*T+Phi0);
Попробуй так
3
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 5
30.10.2015, 11:30  [ТС] 3
Помогло! Спасибо! Не думал, что все так просто! Я изначально ставил точку между скобками, а вот перед периодом Т не убрал!
0
5243 / 3571 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
30.10.2015, 11:32 4
для ознакомления
СЕКРЕТНО! Зловещая точка претыкания

Как оформлять код в сообщениях
0
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 5
30.10.2015, 11:52  [ТС] 5
Теперь у меня другая проблема в частотной области. Центральная частота должна быть порядка 10^5 Гц, а на графике сотни Гц. Что то наверное в спектральном представлении сигнала напутал.
Учитывая Signal=5*10^-4*(Ak+A1*cosd((2*pi*1000)*T)+A2*cosd((4*pi*1000)*T)).*cosd((2.56*pi*10^5)*T)
Я новичок, не бейте сильно))
Спектр сложной функции в MATLAB
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
30.10.2015, 12:12 6
1 Определись в градусах или радианах ты проводишь вычисления (cos-радианы cosd-градусы)
2 Частота дискретизации (Fd у Вас в программе) должна быть не менее чем в 3 раза больше (а желательно больше), чем несущая
3
0 / 0 / 0
Регистрация: 27.10.2015
Сообщений: 5
30.10.2015, 13:48  [ТС] 7
Спасибо! Подправил
Fd=4194304 - Частота дискретизации (Гц)
FftL=524288 - Количество линий Фурье спектра, иначе спектр очень размазанный
Signal=5*10^-4*(Ak+A1*cosd((F1*360)*T)+A2*cosd((F2*360)*T)).*cosd((F0*360)*T) - Теперь здесь частота в Герцах (модулирующие -1 кГц и 2 кГц, несущая - 465 кГц)

Теперь все как надо!

Спектр сложной функции в MATLAB
0
30.10.2015, 13:48
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2015, 13:48
Помогаю со студенческими работами здесь

Функции: вычислить значение сложной (составной) функции
помогите,пожалуйста!! 1)Y= Max(a,b) если х=0 y=Min(a,b) если...

Спектр функции sin(x)
Прошу помочь разобраться почему маткад плюется на меня при нахождении ak и bk.

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

Функции: определить значение сложной функции
Даны натуральные числа a, c, m. Получить f(n), где: см. скриншот! Что такое n? откуда мы его...

Табуляция сложной функции
Не могу записать функцию в Excel, помогите плиз

Производная сложной функции
(4+x^4)/x^3*arctgx^2/2+4/x Вот как из этого найти производную? Калькуляторы пожалуйста не...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru