আমি পার্কস-ম্যাকক্লেলান অনুকূল এফআইআর ফিল্টার ডিজাইন অ্যালগরিদমের ওপেন সোর্স বাস্তবায়ন কোথায় পেতে পারি?


20

পটভূমি: প্রায়শই আমি কিছু ধরণের সিগন্যাল প্রক্রিয়াজাতকরণ কাজটি করি যার জন্য একটি অনন্য ফিল্টার প্রয়োজন। সাধারণত এই সময়ে আমি ম্যাটল্যাব যান এবং ব্যবহার করে একটি নতুন অনন্য ফিল্টার উৎপন্ন । ম্যাটল্যাব ফাংশনটি পার্ক-ম্যাকক্লেলান অ্যালগরিদম প্রয়োগ করে। এখন আমার কাছে একটি ফিল্টার রয়েছে এবং আমি ফিল্টারটিকে একটি হার্ডকোডযুক্ত অ্যারেতে রেখেছি। তবে এখানে সমস্যাটি এখন আমার কাছে একটি হার্ডকোডযুক্ত ফিল্টার রয়েছে যা কেবলমাত্র একটি দৃশ্যের জন্য কাজ করে।firpm()firpm()

সমস্যা: আমি এখন আমার সিগন্যাল প্রসেসিং সমস্যা ডু-মাইভার সমাধান করতে পারি ... তবে কেবলমাত্র খুব স্পেসিফিক একক নমুনা হার বা স্পেসিফিক দৃশ্যের জন্য।

লক্ষ্য: আমি সি কোড বা অন্য কোনও ভাষা থেকে কল করতে এবং আমার সিগন্যাল প্রসেসিং আরও জেনেরিক করতে সক্ষম হতে চাই। এর কোনও ওপেন সোর্স বাস্তবায়ন খুঁজে পাচ্ছি না !firpm()firpm()

পার্কস-ম্যাকক্লেলান অনুকূল এফআইআর ফিল্টার ডিজাইন অ্যালগরিদম ( ওরফে ওপেন সোর্স বাস্তবায়ন ) কোথায় ?firpm()

  • পিএস আমি সচেতন যে আমি উইন্ডো বা অন্য কিছু ব্যবহার করে ফিল্টারগুলি আলাদাভাবে ডিজাইন করতে পারি ... মন্তব্যে সেগুলি উল্লেখ না করে নির্দ্বিধায় থাকুন। তবে এই প্রশ্নের মূল বক্তব্যটি জিজ্ঞাসা করা নয় যে "অন্যান্য ফিল্টার ডিজাইনের কৌশলগুলি কী?" ওপেন সোর্স বাস্তবায়ন খুব খুব দরকারী ... বা অনুরূপ কিছু।firpm()

  • পিপিএস এই প্রশ্নের অন্যতম লক্ষ্য হল পার্কস-ম্যাকক্লেলান অ্যালগরিদম কীভাবে কোডটি প্রথমে কোডটি দেখে কাজ করে তা শিখতে হবে এবং তারপরে আমি কিছু পটভূমি তত্ত্ব পড়ার পরিকল্পনা করছি।


সমাধানটি নিখরচায় করা কি গুরুত্বপূর্ণ? আপনি মাতলাব সি এপিআই তদন্ত করেছেন?

2
সর্বাধিক অগ্রাধিকার হ'ল আমি উত্স কোডটি দেখতে চাই (অগ্রাধিকার হিসাবে ফোরআরান না তাই আমার চোখ ছোঁড়াতে হবে না)। আমি অবশ্যই এই নিষেধাজ্ঞাকে রাখব না যে এটি অবশ্যই নিখরচায় হতে হবে (সম্ভবত কোনও ধরণের ওপেন সোর্স তবে অ-মুক্ত উত্স কোড)।
ট্রেভর বয়েড স্মিথ

3
আমি সচেতন যে আপনি মতলব সংকলকটি ব্যবহার করে মতলব সংকলন করতে পারেন এবং তারপরে মতলব রানটাইম ব্যবহার করে বিতরণ করতে পারেন ... সুতরাং প্রযুক্তিগতভাবে আপনার গ্রাহককে মতলব লাইসেন্সের জন্য অর্থ প্রদান করতে হবে না। আমি মতলব ইঞ্জিন (ওরফে সি থেকে মতলব এপিআই) সম্পর্কেও অবগত। এই দুটিই অপ্রাসঙ্গিক কারণ আমি সাধারণত একটি এম্বেড থাকা প্ল্যাটফর্মে চালিত করি যেখানে উভয়ই উপলব্ধ নয়।
ট্রেভর বয়ড স্মিথ

1
@ ট্রেভরবয়ডস্মিথ যেহেতু আপনি কেবল উত্স কোডটি দেখতে চান, তাই আপনি type firpm.mম্যাটল্যাব চেষ্টা করেছেন? এটি আপনাকে ম্যাটল্যাবের ফাংশনটির বাস্তবায়ন দেখাবে।
Lorem Ipsum

1
সিগন্যাল প্রসেসিংয়ের জন্য এফআইআর ফিল্টার ডিজাইন খুব দরকারী এবং পার্কস-ম্যাক্লেলান একটি তুচ্ছ-তুচ্ছ বিষয়। এবং এখনও আমি এমন কোনও বিষয় সম্পর্কে জিজ্ঞাসা করার জন্য বার বার ভোট দিয়ে যাচ্ছি যে, আইএমও dsp.stackexchange সনদে যথাযথভাবে ফিট করে। দয়া করে আপনার ডাউনভোটগুলি ব্যাখ্যা করুন।
ট্রেভর বয়ড স্মিথ

উত্তর:


5

এখানে রেমেজ এক্সচেঞ্জের অ্যালগরিদমের একটি এলজিপিএল সংস্করণ । অষ্টভ কোডটি এটি থেকে উদ্ভূত বলে মনে হচ্ছে। এটি উইকিপিডিয়া পৃষ্ঠা পার্কস ম্যাকক্লেলান পৃষ্ঠা থেকে সংযুক্ত ছিল ।
মূল জেনোভেটজ কোডটি আপনার প্রকল্পে আরও সহজে ব্যবহারযোগ্য হবে, যেহেতু এতে অষ্টাভ কল নেই, তবে রিমেজ সি সি ফাইলটিতে বাগফিক্স বা স্পিডআপগুলি সম্পর্কিত কোনও তথ্যের জন্য অক্টাভ-ফোর্স এসএনএন চেঞ্জলগের মাধ্যমে খনন করা বুদ্ধিমানের কাজ হবে would ।


আমি একমত যে কোনও প্রকল্পে জ্যানোভেটজ কোড ব্যবহার করা সহজ হবে কারণ এটি সোজা সি I আমি স্পষ্টভাবে সম্মতও হয়েছি যে অষ্টক বাস্তবায়নের পরিবর্তন লগটি পরীক্ষা করা খুব স্মার্ট হবে।
ট্রেভর বয়ড স্মিথ

জানোভেটজ কোড আইএমও সম্ভবত প্রথম বা দ্বিতীয় খসড়া ... তবে অক্টাভ কোডের মতো খুব বেশি ব্যবহার করা হয়নি।
ট্রেভর বয়ড স্মিথ

খুব গুরুত্বপূর্ণ নোট: জানোভেটজ কোডটি এলজিপিএল যাতে আপনি এটি বাণিজ্যিক সেটিংয়ে ব্যবহার করতে পারেন।
ট্রেভর বয়ড স্মিথ

উত্তরের প্রথম লিঙ্কটি নষ্ট হয়ে গেছে তাই এখানে একটি লাইব্রেরির লিঙ্ক যেখানে একই বাস্তবায়ন ব্যবহৃত হয়।
মাচটা

11

জিএনইউ অকটাভে পার্কস-ম্যাকক্লেলান (রেমেজ এক্সচেঞ্জ অ্যালগরিদম নামেও পরিচিত) এর একটি মুক্ত উত্স বাস্তবায়ন রয়েছে, এটি একটি ম্যাটল্যাবের মতো পরিবেশের একটি মুক্ত-সফ্টওয়্যার বাস্তবায়ন। "রেমেজ" নামক ফাংশনটি "সিগন্যাল" প্যাকেজের মধ্যে রয়েছে যা অক্টেভ-ফোর্জে হোস্ট করা হয় । আপনি যদি প্যাকেজটি ডাউনলোড করেন তবে আপনি "রিমেজ সি সি" পাবেন, একটি সি ++ অ্যালগরিদমের বাস্তবায়ন।

অষ্টাভে সম্পর্কে একটি সুন্দর বিষয় হ'ল এটি ম্যাটল্যাবের সাথে প্রায় কোডের সাথে সামঞ্জস্যপূর্ণ, তাই আপনি যদি চান তবে খুব সহজেই সেখানে ব্যবহারের জন্য কোড পোর্ট করতে পারেন। ম্যাটল্যাজে এমএক্স আকারে সরবরাহ করা অ্যালগরিদমগুলি বাস্তবায়নের সময় হুডের নীচে উঁকি দেওয়ার এটি একটি ভাল উপায়।


"পার্কস-ম্যাকক্লেলান অ্যালগরিদম হ'ল রেমেজ অ্যালগরিদম বা রিমেজ এক্সচেঞ্জের অ্যালগরিদমের পরিবর্তনের সাথে এটি পরিবর্তন করে যে এটি বিশেষত এফআইআর ফিল্টারগুলির জন্য ডিজাইন করা হয়েছে এবং এটি এফআইআর ফিল্টার ডিজাইনের জন্য একটি আদর্শ পদ্ধতিতে পরিণত হয়েছে।" সায়পাইতেও
এন্ডোলিথ


2

পার্কস ম্যাকক্লেলান অ্যালগরিদম সি এর জন্য এখানে অন্য উত্স দেওয়া হয়েছে এই কোডটি উপরে বর্ণিত সায়পি কোড থেকে পৃথক যে এটির 69 টি মূল গোটো স্টেটমেন্টের মধ্যে 61 রয়েছে (সায়পাই কোডটিতে এখনও প্রায় 37 গোটো আছে)। এটি কোডটি 3 টি স্থানে স্থির করে যেখানে শূন্য দ্বারা বিভাজন ঘটতে পারে এবং এতে কিছু অতিরিক্ত কোড রয়েছে যা ব্যান্ড প্রান্তের মানগুলি পরীক্ষা করে।

http://www.iowahills.com/A7ExampleCodePage.html


1

সম্ভবত আপনি এটি ইতিমধ্যে জানেন, তবে আপনার যদি মাতলাব থাকে তবে আপনি ম্যাটল্যাব কোডার ব্যবহার করতে পারেন এবং একটি সাধারণ ফাংশন তৈরি করতে পারেন যা আপনি পরীক্ষা করতে চান এমন বৈশিষ্ট্যটি ব্যবহার করে। তারপরে এটি চালান এবং তৈরি সি কোডটি দেখুন। আমি এফএফটি দিয়ে এবং কিউআর পচন নিয়ে চেষ্টা করেছি এবং এটি কিছুটা অগোছালো হলেও এটি ঠিকঠাক বোঝা যায়।


1

এখানে এমন একটি কাগজ রয়েছে যা "কোর" রেকর্ড অ্যালগরিদমের আসল মতলব সংস্করণটি করে। "রেটজ মাল্টিপল এক্সচেঞ্জ অ্যালগরিদমের আসল ধারণা অনুসরণ করে একটি ম্যাটল্যাব ভিত্তিক সর্বোত্তম মাল্টব্যান্ড এফআইআর ফিল্টার ডিজাইন প্রোগ্রাম" -2011 আইইইই ইন্টারন্যাশনাল সিম্পোজিয়াম অন সার্কিট অ্যান্ড সিস্টেমস (আইএসসিএএস) - লেখক (আহসান, সরামাকি)

এই কাগজটি বেসিক অ্যালগরিদম ব্যাখ্যা করার জন্য একটি ভাল কাজ করে। কাগজের লক্ষ্যটি ছিল মূল ফোর্টরান কোডটি ব্যবহার করা এড়ানো - যা খুব ভালভাবে অ্যালগরিদমকে ব্যাখ্যা করে না এবং প্রায়শই কেবল সরাসরি অন্যান্য বিভিন্ন ভাষায় অনুবাদ হয়।

একটি জিনিস আমি মন্তব্য করব। অ্যালগরিদমের মূল ধারণাগুলির মধ্যে একটি হল একটি বক্ররেখা ফিট করা এবং তারপরে অতিরিক্ত পয়েন্টগুলি সন্ধান করা। সাধারণত এই ধারণাটি বোঝানোর জন্য একটি ল্যাঞ্জরন ইন্টারপোলেশন ব্যবহৃত হয় তবে ল্যাঞ্জরেজ ইন্টারপোলেশনের সংখ্যাসূচক বৈশিষ্ট্য রয়েছে। মূল অ্যালগরিদমে লেগ্রঞ্জ ইন্টারপোলেশন ব্যারেন্সেন্ট্রিক প্রয়োগ বাস্তবায়ন - যা ল্যাঙ্গরজিয়ান অন্তরঙ্গকরণের সাথে সম্পর্কিত অনেকগুলি সমস্যাগুলি এড়িয়ে চলে ids সুতরাং আপনি যদি কোডটি সম্পূর্ণরূপে বোঝার চেষ্টা করছেন, আপনি ব্যারেন্সেন্ট্রিক ইন্টারপোলেশন সন্ধান করতে পারেন।


কাগজটির দিকে তাকানো - এটি পার্ক-ম্যাকক্লেলান কোডের একটি পরিবর্তিত সংস্করণ। এটি এখনও রেমেজ এক্সচেঞ্জ অ্যালগরিদমের উপর ভিত্তি করে রয়েছে তবে এটি আরও ভাল পারফরম্যান্সের ঝোঁক দেয় এবং আপনাকে ফিল্টারগুলি ডিজাইন করতে দেয় যা আপনি প্রধানমন্ত্রী অ্যালগরিদম (বা এটি ম্যাট্লাবের প্রয়োগ) থেকে প্রাপ্ত ফিল্মগুলির তুলনায় অনেক বেশি লম্বা।
ডেভিড

1

মতলবের ফার্মিপি এবং স্কিপি.সিগনালের রিমেজের মধ্যে পার্থক্য থেকে সাবধান থাকুন। উদাহরণস্বরূপ, এই দুটি বিবৃতি সমতুল্য:

% Matlab
firpm(10,[.2 .8],[1 1],'Hilbert')
# Python
from scipy.signal import remez

remez(11, [0.1, 0.4], [1], type='hilbert')
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.