আমি বর্তমানে অ্যাকোস্টিক এফএসকে মড্যুলেশন এবং ডিমোডুলেশন বাস্তবায়ন করছি। আমি সিগন্যাল প্রসেসিং লোক নই ...
যেহেতু আপনি বলেছেন যে আপনার সাথে ফিল্টার রয়েছে এবং আপনি অ-সুসংগত সনাক্তকরণের কথা উল্লেখ করেছেন, তাই আমি মনে করি আপনি ইতিমধ্যে একটি ডিজিটাল যোগাযোগের ব্যক্তির চেয়ে অনেক বেশি - ডিএসপি ব্যক্তি হওয়ার পদক্ষেপটি খুব ছোট is
সম্পূর্ণ-সমৃদ্ধ সিঙ্ক্রোনাইজার এসডিআর পদ্ধতির
সুতরাং, এটি করার ধ্রুপদী উপায়টি হল আপনার দুটি ফিল্টারগুলির (আউটপুট) বর্গক্ষেত্রের আউটপুটগুলি নেওয়া, লো পাস ফিল্টারটি above , এবং ফিল্টারিংয়ের পরে / পরে ডিমেমেট (যদি সম্ভব), যাতে আমরা প্রতি সেকেন্ডে অপারেশনগুলি অপচয় না করি।2fsymbol,max
আমি নিজেকে দ্রুত রিয়েল-ভ্যালু ব্যান্ডপাস সিগন্যাল এফএসকে ডেমোড তৈরি করেছি (আমি মনে করি যদি আমি এটি আবার করি তবে আমি দুটি ব্যান্ডপাস ফিল্টারকে একটি সংযুক্ত ফ্রিকোয়েন্সি অনুবাদ এবং একটি লো পাস ফিল্টার দিয়ে প্রতিস্থাপন করতাম, আমাকে জটিল বেসব্যান্ড উপহার দিয়েছিলাম বা একটি পলিফেস ফিল্টারব্যাঙ্ক ছুঁড়ে ফেলেছিলাম) GNU রেডিও সহকারীর সহায়তায় GNU রেডিওতে সমস্যাটি রয়েছে তবে যাই হোক না কেন ( এখানে প্রবাহিত গ্রাফ ফাইল ):
পয়েন্টটি হ'ল আমরা সম্ভবত বিভাজন এবং প্রান্তিকের ব্লকের মধ্যে টাইমিং সিঙ্ক্রোনাইজ করতে চাই। আমরা পরে তা করতে পারি - শাস্ত্রীয়, "মাইক্রোকন্ট্রোলার এবং ডিজিটাল হার্ডওয়্যার ডিজাইন" পদ্ধতির বিষয়টি আসলে মুলার এবং মুলার ক্লক সিঙ্ক হবে এবং এটি সেখানে পাশাপাশি কাজ করবে - তবে আসুন slালের তথ্যটি অপচয় করা উচিত না।
সুতরাং, আমি এখানে একটি পলিফেজ ক্লক সিঙ্ক যুক্ত করব; আমাকে অবশ্যই স্বীকার করতে হবে যে টম, হ্যারিসের শিষ্য, নামটি জিএনইউ রেডিও ব্লকের ডকুমেন্টেশনে আমি টমের চেয়ে ভাল আর এটি তৈরি করতে পারিনি :
পলিফেজ ফিল্টারবঙ্কগুলি ব্যবহার করে টাইমিং সিঙ্ক্রোনাইজার।
এই ব্লকটি ফিল্টার সংকেতটির ডেরাইভেটিভকে হ্রাস করে পিএএম সিগন্যালের জন্য টাইমিং সিঙ্ক্রোনাইজেশন সম্পাদন করে, যার ফলে এসএনআর সর্বাধিক হয় এবং আইএসআই হ্রাস করে।
এই পদ্ধতির দুটি ফিল্টারব্যাঙ্ক স্থাপন করে কাজ করে; একটি ফিল্টারব্যাঙ্কে সিগন্যালের ডাল আকারের ম্যাচিং ফিল্টার (যেমন একটি রুট উত্থাপিত কোসাইন ফিল্টার) থাকে, যেখানে ফিল্টারব্যাঙ্কের প্রতিটি শাখায় ফিল্টারটির একটি পৃথক পর্যায় থাকে। দ্বিতীয় ফিল্টারব্যাঙ্কে প্রথম ফিল্টারব্যাঙ্কে ফিল্টারগুলির ডেরাইভেটিভ রয়েছে। সময়ের ডোমেনে এটি ভাবনা, প্রথম ফিল্টারব্যাঙ্কে এমন ফিল্টার রয়েছে যা তাদের কাছে একটি সংশ্লেষ আকার ধারণ করে। আমরা সিনপ শেপের ঠিক শিখরে নমুনা পেতে আউটপুট সিগন্যালটি সারিবদ্ধ করতে চাই। সিনকের ডেরাইভেটিভটিতে ( ) এর সর্বাধিক বিন্দুতে একটি শূন্য থাকে । তদতিরিক্ত, শূন্য পয়েন্টের চারপাশের অঞ্চলটি তুলনামূলকভাবে রৈখিক। আমরা ত্রুটি সংকেত উত্পন্ন করতে এই সত্যটি ব্যবহার করি।sincsinc(0)=1,sinc′(0)=0
তম ফিল্টারের জন্য যদি ডেরাইভেটিভ ফিল্টারগুলির বাইরে থাকা সংকেতটি , এবং মিলে যাওয়া ফিল্টারটির আউটপুট , তবে আমরা ত্রুটিটিকে এই হিসাবে গণনা করি:di[n]ixi[n]
e[n]=R{xi[n]}⋅R{di[n]}+I{xi[n]}⋅I{di[n]}2.0 .
এই সমীকরণটি বাস্তব এবং কল্পিত অংশগুলিতে ত্রুটির গড়পড়তা। দুটি কারণ রয়েছে যা আমরা সিগন্যাল থেকেই গুন করি। প্রথমত, প্রতীকটি যদি ইতিবাচক বা নেতিবাচক হয়ে উঠতে পারে তবে আমরা ত্রুটি শব্দটি সর্বদা আমাদের শূন্য পয়েন্টের কোন দিকে যাচ্ছি তার উপর নির্ভর করে একই দিকে যেতে বলি। এর চিহ্নটি এটি করার জন্য ত্রুটি শব্দটি সামঞ্জস্য করে। দ্বিতীয়ত, এর তীব্রতা প্রতীকটির প্রশস্ততার উপর নির্ভর করে ত্রুটি শব্দটিকে স্কেল করে, তাই বৃহত্তর সংকেত আমাদের একটি শক্তিশালী ত্রুটি শব্দ দেয় কারণ আমাদের প্রতীকটির মানটির প্রতি আরও আস্থা রয়েছে। কেবলমাত্র চিহ্নের পরিবর্তে এর মাত্রা ব্যবহার করা বিশেষত কম এসএনআর সংকেতের জন্য ভাল।xi[n]xi[n]xi[n]
ত্রুটি সংকেত, , আমাদের ডেরাইভেটিভ সিগন্যালে শূন্য পয়েন্ট থেকে কতটা দূরে তার সমানুপাতিক মান দেয়। আমরা এই মানটি শূন্যে চালিত করতে চাই, সুতরাং আমরা একটি দ্বিতীয় অর্ডার লুপ সেট আপ করব। এই লুপের জন্য আমাদের দুটি ভেরিয়েবল রয়েছে; হ'ল আমরা যে ফিল্টারব্যাঙ্কে তার ফিল্টার নম্বর এবং the হ'ল হার যা আমরা ফিল্টারগুলির মধ্য দিয়ে স্থির অবস্থায় ভ্রমণ করি। এটি হ'ল ট্রান্সমিটার এবং রিসিভারের মধ্যে প্রাকৃতিক ঘড়ির পার্থক্যের কারণে, that এই পার্থক্যের প্রতিনিধিত্ব করে এবং রিসিভারকে লক রাখতে ফিল্টার ফেজ পাথগুলি অতিক্রম করবে। এটি দ্বিতীয়-আদেশের পিএলএল হিসাবে ভাবা, the ফ্রিকোয়েন্সি এবং হল পর্যায়। সুতরাং আমরা আপডেটe[n]dkdratedratedratedkdrate এবং দুই ত্রুটি সংকেত উপর ভিত্তি করে পরিমিত লুপ সমীকরণ ব্যবহার করে, এবং । আমাদের কাছে এই দুটি মান একটি সমালোচনামূলকভাবে স্যাঁতসেঁতে সিস্টেমের জন্য একে অপরের উপর ভিত্তি করে সেট করা আছে, সুতরাং ব্লক কনস্ট্রাক্টরে আমরা কেবল "লাভ" জিজ্ঞাসা করি যা যখন to এর সমান ।dkdαdβdαdβgain24
এটি উপলব্ধি করা অডিও ফ্রিকোয়েন্সি
সুতরাং, এই ব্লক সঠিকভাবে parameterizing (এবং সম্ভবত হ্রাস bpf_decim
এবং lpf_decim
শিফট পর্যায়ক্রমে আরো কাজে লাগতো সিংক্রোনাইসার দিতে) আপনি একটি খুব স্থিতিশীল প্রতীক সময়জ্ঞান পুনরুদ্ধারের নির্মান করতে পারে, যে সম্পূর্ণই Overkill আপনার অ্যাপ্লিকেশনের জন্য হবে 😁
যেহেতু আপনি উভয় প্রান্তে একটি সাউন্ড কার্ড নিয়ে নমুনা তৈরি করছেন, এবং আমার ধারণা যেহেতু আপনাকে ডপলারের সাথে ডিল করতে হবে না, তাই প্রতীক হারের বাহক ফ্রিকোয়েন্সিগুলির সাথে একটি নির্দিষ্ট সম্পর্ক রয়েছে (উদাহরণস্বরূপ সংক্রমণকারী পাশের সাথে একটি উচ্চতর ক্যারিয়ার রয়েছে 8 টি সাউন্ড কার্ডের নমুনাগুলির সময়কালে এবং একটি প্রতীক সর্বদা 128 নমুনা বলে রাখে, সুতরাং একটি নির্দিষ্ট অনুপাত রয়েছে), আপনি একটি শর্ট কাট নিতে পারেন:
আপনি যদি ক্যারিয়ারের ফ্রিকোয়েন্সি এবং প্রতীক হারের মধ্যে অনুপাতটি জানেন তবে কেবল একটি অনুমান করুন এবং আপনি অন্যটি বিনামূল্যে পান! এই ক্ষেত্রে, এফএসকে, এটি বিশেষত সহজ: উদাহরণস্বরূপ, উপরের ব্যান্ডটি সক্রিয় থাকাকালীন সময়ের জন্য অপেক্ষা করুন এবং আপনাকে অনুমান দেওয়ার জন্য একটি চতুর্ভুজ ডিমোডুলেটর (যেমন কার্যত ) ব্যবহার করুন আপনার ডেসিমেটিং ব্যান্ড ফিল্টার পাসের পরে ক্যারিয়ারের ফ্রিকোয়েন্সিটি এবং ফলাফলটি ফ্রিকোয়েন্সি সংশোধন ফ্যাক্টর হিসাবে ব্যবহার করুন - আপনি অবিলম্বে ক্যারিয়ারের ফ্রিকোয়েন্সি পুনরুদ্ধার এবং প্রতীক হার পুনরুদ্ধারের সমস্যাটি একবারে সমাধান করবেন। আমি এমনকি আপনার এমনকি সময় পুনরুদ্ধারের প্রয়োজন হবে বলেও মনে করি না - একটি থ্রেশোল্ডিংয়ের পরে, যদি আপনি পর্যাপ্ত পরিমাণে নমুনা (যা এই হারে কোনও সমস্যা নয়), আপনি কেবল একটি উইন্ডোতে বা শিফটে সর্বাধিক সিদ্ধান্ত নিতে পারেন উইন্ডোটিতে সর্বাধিক পাওয়ার জন্য প্রয়োজনীয় উইন্ডোটি।darctandt[n]
প্যাকেট সিঙ্ক সম্পর্কিত
ঠিক আছে, যেহেতু আপনি একটি কার্যনির্বাহী ডেমোডুলেটর পেয়েছেন যা সম্ভবত সিঙ্কের বাইরে চলে যাবে যখন কোনও সিগন্যাল উপস্থিত নেই, কেবল আপনার প্যাকেটটি সন্ধানের জন্য একটি নির্দিষ্ট পরিচিত ডেটা ক্রম ব্যবহার করুন।